1. Tối ưu hóa phần cứng và hệ điều hành

a) RAM

Đảm bảo bạn có đủ dung lượng RAM để tăng hiệu suất máy chủ web apache, đặc biệt là trong quá trình lưu trữ. Nếu RAM đầy, các yêu cầu sẽ được chuyển hướng sang không gian trao đổi làm tăng độ trễ. Điều này có nghĩa là người dùng phải tải lại yêu cầu của họ, do đó tăng tải hơn nữa. Để giải quyết vấn đề này, tức là giới hạn số lượng tiến trình con được sinh ra bởi máy chủ web Apache ngoài việc chúng được chuyển hướng để trao đổi không gian, bạn phải đặt MaxRequestWorkers. Để có được giá trị tốt nhất cho việc này, hãy làm thủ tục sau:


  1. Sử dụng lệnh trên cùng để kiểm tra kích thước RAM trung bình được sử dụng bởi quá trình apache
  2. Chia tổng kích thước RAM khả dụng cho kích thước RAM trung bình được sử dụng bởi apache để lấy số lượng MaxRequestWorkers

Để tăng hiệu suất của Apache, đảm bảo bạn có CPU nhanh hơn, card mạng nhanh hơn và đĩa nhanh hơn.

b) Ghi kích thước bộ đệm

Tăng kích thước bộ đệm ghi bằng cách tăng giá trị trong hai tệp:

/ Proc / sys / net / core / wmem_max
/ Proc / sys / net / core / wmem_default

c) Tập tin mở tối đa

Nếu máy chủ web apache đang xử lý tải cao, nó khuyên bạn nên tăng số lượng tệp mở được phép tối đa bằng cách tăng giá trị trong tệp:

/ Proc / sys / fs / file-max

Sau đó chạy lệnh:

$ ulimit -H -n 4096

2. Điều chỉnh cấu hình thời gian chạy

a) Vô hiệu hóa .htaccess bằng AllowOverride

Việc kích hoạt AllowOverride khiến apache cố gắng mở .htaccess bất cứ khi nào yêu cầu được đưa ra. Điều này thực sự làm giảm hiệu suất của máy chủ web Apache. Để giải quyết vấn đề này, hãy sử dụng tùy chọn AllowOverride Không có như hiển thị bên dưới:

Tài liệu khởi động "/ www / var / html"

AllowOverride Không

b) Vô hiệu hóa tra cứu DNS bằng HostnameLookups

Khi HostnameLookups được bật, tức là BẬT, nó sẽ tăng độ trễ cho mỗi yêu cầu được hoàn thành sau khi thực hiện tra cứu DNS. Có hai giải pháp cho vấn đề này:

  1. Để ghi nhật ký tệp có tên đã giải quyết, hãy xử lý hậu kỳ nhật ký trên một máy khác để tránh làm chậm hiệu suất trong máy chủ sản xuất.
  2. Nếu bạn không nhất thiết phải phân giải tên thì hãy sử dụng địa chỉ IP và tắt hoàn toàn tra cứu DNS bằng cách sử dụng tùy chọn bên dưới:

Tên máy chủ Tắt

3. Tối ưu hóa cấu hình thời gian biên dịch

a) Mô-đun đa xử lý (MPM)

MPM giúp apache có thể liên kết với các cổng mạng, sử dụng các tiến trình và luồng con thay thế để chấp nhận và xử lý các yêu cầu. Có 3 loại MPM khác nhau và mỗi loại phù hợp với các yêu cầu khác nhau.

công nhân: Sử dụng nhiều tiến trình con, mỗi tiến trình có nhiều luồng, trong khi mỗi luồng xử lý một kết nối tại một thời điểm. Điều này phù hợp với các máy chủ lưu lượng truy cập cao do dung lượng bộ nhớ nhỏ hơn so với prefork.

biến cố: Tương tự như MPM worker liên quan đến luồng, nhưng cho phép phục vụ đồng thời nhiều yêu cầu hơn thông qua việc chuyển một số xử lý sang các luồng hỗ trợ. Điều này giúp giải phóng bộ nhớ được phân bổ cho các chủ đề khác. Không phù hợp để sử dụng với các mô-đun không an toàn luồng như mod_php.

prefork: Sử dụng nhiều tiến trình con, mỗi tiến trình có một luồng. Mỗi quá trình xử lý một kết nối tại một thời điểm. Nó nhanh hơn một công nhân nhưng sử dụng nhiều bộ nhớ hơn. Thích hợp để gỡ lỗi các ứng dụng sử dụng các mô-đun không an toàn luồng như mod_php.

Để kiểm tra phiên bản MPM của bạn, hãy chạy lệnh

$ sudo httpd -V

Đầu ra:

[linuxuser @ centos7-apache ~] $ sudo httpd -V
[sudo] mật khẩu cho linuxuser:
Phiên bản máy chủ: Apache / 2.4.6 (CentOS)
Máy chủ được xây dựng: ngày 20 tháng 4 năm 2018 18:10:38
Số ma thuật mô-đun của máy chủ: 20120211: 24
Máy chủ được tải: APR 1.4.8, APR-UTIL 1.5.2
Được biên dịch bằng: APR 1.4.8, APR-UTIL 1.5.2
Kiến trúc: 64-bit
Máy chủ MPM: prefork
luồng: không
rẽ nhánh: có (đếm quá trình biến)
Máy chủ được biên dịch với….
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (đã bật địa chỉ ánh xạ IPv4)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT = 256
-D HTTPD_ROOT ="/ etc / httpd"
-D SUEXEC_BIN ="/ usr / sbin / suexec"
-D DEFAULT_PIDLOG ="/sl/httpd/httpd.pid"
-D DEFAULT_SCOREBOARD ="log / apache_r nb_status"
-D DEFAULT_ERRORLOG ="log / error_log"
-D AP_TYPES_CONFIG_FILE ="conf / mime.types"
-D SERVER_CONFIG_FILE ="conf / httpd.conf"

MPM hiện tại là prefork, nếu bạn muốn thay đổi nó, hãy chỉnh sửa như sau:

Dành cho Trung tâm 7

$ sudo vim /etc/httpd/conf.modules.d/00-mpm.conf

Dành cho Ubuntu 16.04

$ sudo vim /etc/apache2/mods-av Available / .load

Mpm_prefork, mpm_event hoặc mpm_worker ở đâu

b) Loại bỏ các mô-đun không cần thiết

Một số mô-đun mà bạn có thể không cần trong máy chủ web của mình bao gồm nhưng không giới hạn ở mod_mime, mod_dir, mod_php, mod_perl, mod_ruby, e.t.c. Điều này sẽ giúp tiết kiệm bộ nhớ RAM được sử dụng bởi máy chủ web.

Trong Centos 7, để vô hiệu hóa hoặc dỡ bỏ một mô-đun, bình luận ngoài< dòng bắt đầu bằng LoadModule trong tệp cấu hình chính hoặc các tệp bên trong /etc/httpd/conf.modules.d/

Trong Ubuntu 16.04, để vô hiệu hóa hoặc dỡ bỏ một mô-đun, hãy chạy lệnh:

$ sudo a2dismod module_name

Để kích hoạt một mô-đun

$ sudo a2enmod module_name

Sau đó khởi động lại dịch vụ apache.

Kiểm tra 3 dịch vụ lưu trữ web tốt nhất

FastComet

Giá khởi điểm:
$ 2,95


độ tin cậy
9,7


Giá cả
9,5


Thân thiện với người dùng
9,7


Ủng hộ
9,7


Đặc trưng
9,6

Đọc đánh giá

Ghé thăm FastComet

Lưu trữ A2

Giá khởi điểm:
$ 3,92


độ tin cậy
9,3


Giá cả
9.0


Thân thiện với người dùng
9,3


Ủng hộ
9,3


Đặc trưng
9,3

Đọc đánh giá

Ghé thăm Hosting A2

ChemiCloud

Giá khởi điểm:
$ 2,76


độ tin cậy
10


Giá cả
9,9


Thân thiện với người dùng
9,9


Ủng hộ
10


Đặc trưng
9,9

Đọc đánh giá

Truy cập ChemiCloud

Bài viết hướng dẫn liên quan

  • Cách cài đặt Apache và PHP-FPM trên Debian 8
    chuyên gia
  • Cách thêm mô-đun vào máy chủ Apache trên CentOS
    Trung gian
  • Cách định cấu hình Nginx và Apache cùng nhau trên cùng một Ubuntu Ubuntu hoặc Máy chủ chuyên dụng
    Trung gian
  • Cách thiết lập máy chủ Apache 2 bằng phương pháp bao gồm để quản lý bộ đệm của trình duyệt
    Trung gian
  • Cách bảo vệ máy chủ web Apache trên VPS CentOS 7 hoặc Máy chủ chuyên dụng
    chuyên gia
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me