ตรวจสอบกระบวนการบนเซิร์ฟเวอร์ของคุณ
ทุกสิ่งที่ทำงานบนเซิร์ฟเวอร์ของคุณ (อีเมล, งาน cron, mysql, ไซต์) จะใช้ CPU และหน่วยความจำ การตรวจสอบกระบวนการทำงานบนเซิร์ฟเวอร์ของคุณเป็นสิ่งสำคัญเมื่อคุณประสบปัญหาการทำงานช้าหรือไม่ต่อเนื่อง วิธีนี้จะช่วยให้คุณระบุสาเหตุและแนะนำวิธีแก้ไขเพื่อให้เว็บไซต์ของคุณทำงานได้ตามปกติเหตุใดฉันจึงควรตรวจสอบกระบวนการ
- การใช้งานหน่วยความจำหรือ CPU สูงในเซิร์ฟเวอร์ของคุณ
- งานสำรองข้อมูลหรืองานอื่นที่กำหนดเวลาไว้กำลังทำงานนานกว่าปกติ
- เว็บไซต์อย่างน้อยหนึ่งแห่งพบว่าเวลาในการโหลดช้ากว่าปกติ
- งาน (เช่นการล็อกอินเข้าสู่เว็บไซต์) จะใช้เวลาดำเนินการนาน
- คุณได้รับข้อผิดพลาดและ / หรือหมดเวลาเมื่อรันงาน
ฉันจะตรวจสอบกระบวนการได้อย่างไร
คุณจะใช้ top และ ps เพื่อตรวจสอบเซิร์ฟเวอร์ของคุณ คำสั่ง ด้านบน จะแสดงรายละเอียดเกี่ยวกับเซิร์ฟเวอร์ Linux ของคุณแบบเรียลไทม์ คำสั่ง ps จะแสดงรายการกระบวนการที่กำลังรันอยู่
หากคุณเรียกใช้ M สูงสุด คุณจะเห็นผลลัพธ์ที่คล้ายกันนี้:
[root @ server ~] $ top M สูงสุด - 12:39:25 เพิ่มขึ้น 300 วัน, 3:15, ผู้ใช้ 2 คน, โหลดเฉลี่ย: 0.06, 0.07, 0.08 งาน: 437 ทั้งหมด, 1 รัน, 432 นอน, 0 หยุด, 4 ซีพียูซอมบี้: 0.6% us, 2.2%s y, 0.8% ni, 96.2% id, 0.2% wa, 0.0% hi, 0.0%s ฉัน, 0.0%s t Mem: 31.237G ทั้งหมด, ใช้ 12.921G, ฟรี 18.316G, บัฟเฟอร์ 361.410M สวอป: ทั้งหมด 8191.996M, ใช้ 23.781M, ฟรี 8168.215M, 5107.738M PID USER PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND 4425 รูท 20 0 393m 11m 4436 S 6.0 0.0 7776: 50 pvaagentd 2931 td-agent 20 0 2590m 330m 2272 S 1.0 1.0 2233: 30 รูท 108702 รูท 20 0 2394m 46m 10m S 0.7 0.1 0: 22.20 TaniumClient 21 รูท 20 0 0 0 0 S 0.3 0.0 690: 42.23 เหตุการณ์ / 2
มีสวิตช์ต่างๆที่คุณสามารถใช้กับ ด้านบน เพื่อเปลี่ยนเค้าโครงของข้อมูล สำหรับรายการคีย์ลัดทั้งหมดให้ใช้ man top ใน SSH
หากคุณรัน ps fauxx คุณจะเห็นผลลัพธ์ในลักษณะนี้:
ผู้ใช้ PID% CPU% MEM VSZ RSS TTY STAT เวลาเริ่มต้นคำสั่ง root 1 0.0 0.0 10372 752? Ss ก.พ. 06 0:15 init [3] รูท 1412 0.0 0.0 5924 624? Ss ก.พ. 06 0:02 syslogd -m 0 dbus 1421 0.0 0.0 21276 1064? Ss ก.พ. 06 0:00 dbus-daemon - รูทระบบ 1930 0.0 0.0 20888 1184? Ss ก.พ. 06 0:04 crond root 22304 0.0 0.0 12800 788? Ss Feb06 0:00 / sbin / udevd -d รูท 22224 0.0 0.0 10788 1344? S ก.พ. 57 0:00 / bin / sh / usr / bin / mysqld_safe mysql 22421 0.0 3.7 522976 70492? Sl Feb14 8:42 \ _ / usr / libexec / mysqld root 23576 0.0 0.0 21668 976? Ss ก.พ. 57 0:01 xinetd -stayalive -pidfile /var/run/xinetd.pid qmails 28232 0.0 0.0 3868 472? S ก.พ. 57 0:00 qmail- ส่ง qmaill 28234 0.0 0.0 3820 560? S ก.พ. 57 0:00 \ _ splogger qmail
มีสวิตช์ต่างๆที่คุณสามารถใช้กับ ps เพื่อเปลี่ยนเค้าโครงของข้อมูล สำหรับรายการคีย์ลัดทั้งหมดให้ใช้ man ps ใน SSH
รูปแบบที่เป็นประโยชน์อื่น ๆ :
ผู้ใช้ CPU อันดับต้น ๆ :
ps -e -o pcpu, args --sort -pcpu | หัว -10
ผู้ใช้ RAM อันดับสูงสุด:
ps -o pid, ผู้ใช้,% mem, command ax | เรียงลำดับ -b -k3 -r | หัว -10
กระบวนการใช้หน่วยความจำ 10 อันดับแรก:
PS auxx | เรียงลำดับ -nk +4 -r | หัว
ขั้นตอนต่อไป
เมื่อคุณพบกระบวนการที่มีปัญหา (เช่นการสำรองข้อมูลที่หยุดทำงาน) คุณอาจต้องฆ่ากระบวนการเพื่อให้มีทรัพยากรว่าง
ในการฆ่ากระบวนการ:
ฆ่า -9 PID
ในการฆ่ากระบวนการทั้งหมดตามผู้ใช้ (เช่นงาน cron หลายรายการ):
ชื่อผู้ใช้ pkill -u
สำหรับรายการคีย์ลัดทั้งหมดให้ใช้ man kill หรือ man pkill ใน SSH
หากคุณพบว่าคุณมีปัญหาบ่อยครั้งเกี่ยวกับกระบวนการที่หลีกเลี่ยงไม่ได้คุณควร ตรวจสอบบันทึกเซิร์ฟเวอร์ เพื่อค้นหาและแก้ไขปัญหา
ข้อมูลเพิ่มเติม
ผู้เชี่ยวชาญด้านเซิร์ฟเวอร์ของเราสามารถดำเนินการตามขั้นตอนเหล่านี้ได้โดยมีค่าธรรมเนียม สำหรับข้อมูลเพิ่มเติมเกี่ยวกับบริการโฮสติ้งที่ GoDaddy นำเสนอโปรดไปที่ เมนูบริการโฮสติ้ง ของเรา