Điểm:0

Làm cách nào để truy vấn nhân linux mà các hoạt động liên quan đến lưu trữ hiện đang được chạy ở cấp độ FS/lớp khối/bộ điều khiển SATA?

lá cờ cn

Thỉnh thoảng, máy chủ Linux LAMP của chúng tôi (sử dụng PHP-FPM, XFS trên LVM mỏng trên HW RAID, Centos8) không thể truy cập được và ngừng phản hồi các yêu cầu HTTP(S).

Thông qua ghi nhật ký tập trung, chúng tôi phát hiện ra rằng trong những trường hợp đó, trung bình tải nhanh chóng tăng lên hàng trăm, trong khi ngày càng nhiều quy trình (systemd-journald, quy trình php, luồng xfs/dm nhân...) rơi vào trạng thái D. Theo iostat và pidstat, CPU và đĩa hoàn toàn không được tải nhiều trong khi tải trung bình dao động quanh mức 170, điều này khá lạ. Từ đầu ra htop/ps, không có một hoặc nhóm quy trình giả mạo nào có thể giải thích hành vi này. Đó chỉ là các quy trình tiêu chuẩn dường như gặp phải một loại "ngăn đường" nào đó.

Điều kỳ lạ duy nhất khác với giám sát đĩa là trong các sự kiện quá tải đó, iostat liên tục báo cáo w_await cho phân vùng /var (2500-5000ms, trong khi các phân vùng khác như /var/log, /var/lib/mysql hầu như không vượt qua 10ms). Phân vùng này hầu như luôn ở chế độ im lặng, vì vậy không rõ tại sao iostat lại báo cáo số lần w_await lớn như vậy ở đó.

Giải pháp duy nhất sau đó là cấp nguồn cho máy chủ.

Điều này xảy ra trên hai máy chủ cùng loại, không xảy ra trên các máy chủ khác. Nó dường như là một số loại trục trặc của FS/lớp khối/bộ điều khiển/đĩa; nhiều quá trình đột nhiên bắt đầu chờ đĩa hoặc thứ gì đó khác trong kernel, nhưng theo iotop/iostat, đĩa không hoạt động nhiều.

Có cách nào để truy vấn trình điều khiển FS/lớp khối/bộ điều khiển nhân Linux chính xác họ đang làm gì với bộ lưu trữ và thay mặt cho quy trình nào không? Các công cụ tiêu chuẩn như iotop/iostat chỉ cho tôi biết tên của các quy trình đang hoạt động I/O và hoạt động của phân vùng ổ đĩa, nhưng không cho biết quy trình nào truy cập vào phân vùng ổ đĩa nào và chính xác chúng đang làm gì ở đó.

Wilson Hauck avatar
lá cờ jp
Đăng trang htop đầu tiên của bạn sẽ khá nhiều thông tin.
lá cờ cn
Thật khó để có được điều đó, vì tình trạng quá tải xảy ra rất nhanh và sau đó không thể đăng nhập. Tuy nhiên, từ nhật ký đầu ra ps và iostat của chúng tôi, rõ ràng là cả CPU và ổ đĩa đều không bị hỏng. Người tiêu dùng đĩa và CPU lớn nhất là MariaDB nhưng dường như đó không phải là nguyên nhân, vì nhật ký của lệnh SQL "hiển thị danh sách quy trình đầy đủ;' hiển thị các truy vấn đang chạy rất dễ dàng hoặc hoàn toàn không xuất hiện (danh sách quy trình truy vấn trống).
Wilson Hauck avatar
lá cờ jp
Vui lòng đăng htop và HIỂN THỊ ĐẦY ĐỦ QUY TRÌNH; bất cứ khi nào bạn có thể nhận được nó, bận rộn hay không. Cảm ơn
Điểm:2
lá cờ ua

Trong những tình huống như thế này, tôi thấy rằng nó giúp tăng số lượng kết nối lên cao hơn trong ngăn xếp.

Khi nhiều hơn, giả sử, 100 tích cực các tiến trình đang chạy, chúng vấp phải nhau. Họ đang tranh giành tài nguyên (CPU, v.v.). Hiệu quả ròng là tất cả các các quy trình chạy chậm hơn, đôi khi đến mức bạn cảm thấy như giải pháp duy nhất là khởi động lại máy chủ.

Trong trường hợp của MariaDB, tôi khuyên bạn nên bật tính năng ghi chậm để bạn có thể xác định truy vấn có tác động nhiều nhất đến hệ thống. Sau đó tăng tốc nó lên. Nếu bạn muốn trợ giúp, hãy cung cấp truy vấn, Giải thích và Tạo bảng. Hơn: http://mysql.rjweb.org/doc.php/mysql_analysis#slow_queries_and_slowlog

Tăng tốc một số truy vấn có khả năng làm giảm 170 Trung bình tải và I/O, do đó làm giảm bớt nút cổ chai.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.