ฉันจะรู้ได้อย่างไรว่ากระบวนการของ apache กำลังทำอะไรอยู่?


11

บางครั้งอาปาเช่จะบ้าและกินความทรงจำและสลับทั้งหมดของฉัน แต่ฉันไม่รู้ว่าจะรู้ได้อย่างไรว่าเว็บแอปใดเป็นสาเหตุของปัญหา

ps ให้ผลลัพธ์นี้กับกระบวนการ "Uninterruptible sleep (ปกติคือ IO)"

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

ฉันสงสัยว่า Ruby + Redmine แต่ฉันต้องการให้แน่ใจ

คำตอบ:


11

ตรวจสอบให้แน่ใจว่าคุณได้mod_status.soโหลดโมดูล apache ของคุณแล้วมองหา / เพิ่มด้านบนใน httpd.conf ของคุณ:

# 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>

สิ่งนี้จะช่วยให้คุณเห็นหน้าทั้งหมดที่กำลังใช้โหลดโดเมนภายในเซิร์ฟเวอร์ http ของคุณ

ในการเข้าถึงโดยใช้http: // your_ip / server-statusและเฉพาะ ip ที่กำหนดไว้ที่Allow from YOUR_IP_HEREจะสามารถดูได้


1
นอกจากนี้ฉันขอแนะนำให้ใช้Allow from localhostดังนั้นในภายหลังจึงเป็นไปได้ที่จะตรวจสอบข้อมูลนั้นผ่านทางlynx http://localhost/server-statusคอนโซล
Andron

ใน Apache 2.4 ต้องได้รับการอนุมัติทั้งหมดแทนที่จะสั่ง ...
Aleksandar Pavić

5

lsof -p จะแสดงให้คุณเห็นว่าไฟล์ใดที่จัดการกับไฟล์นั้นรออยู่ นอกจากนี้ strace -p และ ltrace -p อาจเป็นประโยชน์ในการลองดีบั๊ก


ทั้งคำตอบที่ดีมาก :)
Joernsn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.