Làm thế nào để tôi biết những gì một quá trình apache đang làm gì?


11

Đôi khi apache phát điên và ăn hết bộ nhớ và trao đổi, nhưng tôi không biết làm thế nào để tìm ra ứng dụng web nào gây ra nó.

ps cho tôi đầu ra này cho quá trình; "Giấc ngủ không bị gián đoạn (thường là IO)"

www-data  1526  0.1 78.9 14928852 3191628 ?    D    Oct17   6:45 /usr/sbin/apache2 -k start

Tôi nghi ngờ Ruby + Redmine, nhưng tôi muốn chắc chắn

Câu trả lời:


11

Hãy chắc chắn rằng bạn đã mod_status.sotải trong các mô-đun apache của mình, sau đó tìm / thêm phần trên vào httpd.conf của bạn:

# Uncomment the following lines to enable mod_status support:
#
ExtendedStatus On

<Location /server-status>
SetHandler server-status

Order Deny,Allow
Deny from all
Allow from YOUR_IP_HERE
</Location>

Điều này sẽ cho phép bạn xem tất cả các trang đang được sử dụng miền tải trong máy chủ http của bạn.

Để truy cập, hãy sử dụng http: // your_ip / server-status và chỉ ip được xác định tại Allow from YOUR_IP_HEREmới có thể xem nó.


1
Ngoài ra tôi đề nghị sử dụng Allow from localhost, vì vậy sau này có thể kiểm tra thông tin đó qua lynx http://localhost/server-statusbảng điều khiển.
Andron

Trong Apache 2.4, Yêu cầu tất cả được cấp thay vì Đặt hàng ...
Aleksandar Pavić

5

Một lsof -p sẽ cho bạn thấy tập tin nào đang xử lý. Ngoài ra strace -p và ltrace -p có thể có ích để thử gỡ lỗi nó.


Cả hai câu trả lời rất hay :)
Joernsn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.