Chúng tôi chạy một trang web có kích thước trung bình nhận được vài trăm nghìn lượt xem trang mỗi ngày. Cho đến cuối tuần trước, chúng tôi chạy với tải thường dưới 0,2 trên một máy ảo. Hệ điều hành là Ubuntu.Apache sử dụng CPU quá mức
Khi triển khai phiên bản mới nhất của ứng dụng, chúng tôi cũng đã thực hiện nâng cấp apt-get trước khi triển khai. Sau khi chúng tôi đã triển khai, chúng tôi nhận thấy rằng tải trên CPU đã tăng đột biến (đôi khi đạt 10 và dừng để phản hồi yêu cầu trang).
Chúng tôi đã cố gắng đổ đầy một phút của dữ liệu lược tả Xdebug từ PHP, nhưng nhìn qua nó chỉ tiết lộ một vài phần hơi chậm, nhưng không có gì để giải thích bước nhảy lớn.
Chúng tôi hiện đang khá chắc chắn rằng không có gì trong phiên bản mới của trang web của chúng tôi đang kích hoạt sự cố, nhưng chúng tôi không có cách nào để đảm bảo. Chúng tôi đã khôi phục rất nhiều thay đổi, nhưng vấn đề vẫn tồn tại.
Khi xem xét quy trình, chúng tôi thấy rằng các quy trình Apache đơn sử dụng khá nhiều CPU trong một khoảng thời gian dài hơn mức cần thiết. Tuy nhiên, khi sử dụng strace về quá trình bị ảnh hưởng, chúng ta không bao giờ nhìn thấy bất cứ điều gì nhưng
accept(3,
và nó được treo trong một thời gian trước khi nhận một kết nối mới, vì vậy chúng tôi không thể thực sự nhìn thấy những gì đang gây ra vấn đề.
Ngăn xếp là PHP 5, Apache 2 (prefork), MySQL 5.1. Hầu hết mọi thứ chạy qua Memcached. Chúng tôi đã thử APC và eAccelerator.
Vậy, bước tiếp theo của chúng ta là gì? Có bất kỳ phương pháp lược tả nào mà chúng tôi đã bỏ qua/không biết?
Bạn đã nâng cấp hệ thống lên phiên bản nào? Tôi có nghĩa là a) PHP, b) Apache và c) memcached. – Georgi
Tôi không có nhật ký về điều đó, thật không may. Theo như tôi biết, không có nhật ký apt-get/aptitude. –