Tôi đang điều hành một trang web có lưu lượng truy cập lớn, nhiều nội dung động, chủ yếu do người dùng tạo.
Máy chủ này là một máy chủ chuyên dụng và có tổng cộng 4 bộ điều khiển CPU Xe32 (R) CPU X3210 @ 2.13GHz. Tôi cần biết các giá trị tối ưu cho các chỉ thị của apache ServerLimit và MaxClents, xem xét rằng máy chủ có 4GB RAM và cơ sở dữ liệu MySQL chạy trên một máy chủ riêng biệt. Bảng điều khiển là DirectAdmin với CentOS.
Dưới đây là các chỉ thị hiện tại của tôi, nhưng trong giờ cao điểm với hơn 5 nghìn người dùng, độ trễ quan trọng được nhận thấy - và đó không phải là toàn bộ lỗi của MySQL, vì các trang dường như được tạo ra nhanh chóng (tôi đã triển khai bộ đếm thời gian tạo trang), nhưng có một thời gian dài độ trễ kết nối cho đến khi trang bắt đầu phản hồi và được gửi đến trình duyệt.
<IfModule prefork.c>
StartServers 800
MinSpareServers 20
MaxSpareServers 60
ServerLimit 900
MaxClients 900
MaxRequestsPerChild 2000
</IfModule>
Timeout 90
KeepAlive On
KeepAliveTimeout 5
Tôi nên đề cập rằng giám sát máy chủ bằng lệnh cao nhất, việc sử dụng CPU không bao giờ vượt quá 20% ~ 30% vào giờ cao điểm. Máy chủ MySQL cũng có mức sử dụng 30 ~ 50% tại thời điểm đó và tôi liên tục làm việc để sửa các truy vấn chậm, nhưng đó là một vấn đề khác. Tôi biết đó không phải là nút cổ chai DB vì các trang tĩnh cũng mất nhiều thời gian để tải vào giờ cao điểm.
Bất kỳ lời khuyên để tối ưu hóa các giá trị này sẽ được đánh giá rất cao, cảm ơn.