คำสั่ง top บน linux บอกอะไรได้บ้าง
เก็บมาจาก //www.admin.in.th/webboard/index.php?topic=442.0 ขอบคุณครับ
 (capture ช้าไปสองวิ เสียดายจัง)
ไม่ต้องลงเพิ่ม ติดมากับ os อยู่แล้วไม่ว่าจะลงแบบ minimal ขนาดไหน หรือถ้าทำหายไป มันจะอยู่ใน package "procps" ครับ
มันบอกอะไรบ้าง ไล่ทีละบรรทัดเลยนะครับ (คิดจากค่าปกติของ centos ซึ่ง os อื่นๆ ก็คล้ายๆ กัน อาจมีแตกต่างบ้างแล้วแต่การปรับตั้งค่า)
บรรทัดบนสุด top - 09:13:20 up 187 days, 8:40,1 user, load average: 0.43, 0.66, 0.61 สีแดง: เวลาปัจจุบันของ server สีเขียว: uptime (ระยะเวลาตั้งแต่ boot OS ขึ้นมา) สีม่วง: จำนวน user ที่ login เข้าไปใน shell (การ login หน้าเครื่อง + ssh ที่เปิด terminal เท่านั้น) สีน้ำเงิน: load average : ปริมาณงานที่ "ค้าง" ในระบบเฉลี่ย ในรอบ 1 , 5 และ 15 นาทีตามลำดับ
บรรทัดที่ 2: บรรทัดนี้จะบอกข้อมูลเกี่ยวกับ process ในเครื่องครับ Tasks: 183 total, 3 running, 180 sleeping, 0 stopped, 0 zombie สีแดง: จำนวน process ทั้งหมด สีเขียว: จำนวน process ที่กำลังเรียกใช้ CPU อยู่ "ณ เวลานั้นๆ" สีม่วง: จำนวน process ที่ไม่มีการทำงาน/ไม่มีการเรียกใช้ CPU อยู่ สีน้ำเงิน: process ที่อยู่ในสถานะ "หยุด" (ไอนี้ไม่แน่ใจครับ คู่มือมันเขียนแบบนั้นแต่ผมไม่เคยเห็นตัวเลขขึ้นซักที) สีชมพู: process ผีดิบ lol มันคือ process ที่ตาย/จบการทำงานไปแล้ว แต่ยังไม่สามารถ clear ออกจากหน่วยความจำได้ ส่วนมากจะเป็นพวก process ที่รอการตอบสนองจาก hardware ต่างๆ อยู่ครับ (รวมถึงแรมด้วย
บรรทัดที่ 3: การใช้งาน CPU อันนี้มีของเล่นนิดหน่อยครับ สำหรับเครื่องที่ cpu หลาย core หรือหลาย cpu Cpu(s): 4.0%us, 0.7%sy, 0.0%ni, 94.1%id, 0.9%wa, 0.0%hi, 0.3%si, 0.0%st
สังเกตดีๆ มันจะเขียนหน้าบรรทัดว่า Cpu(s) <-- ตรง (s) หมายความว่าเป็นภาพรวม cpu ทุก core ให้กดแป้นพิมพ์เลข 1 ตรงแป้นพิมพ์ธรรมดา ที่อยู่ข้างๆ ปุ่มตัวหนอน (` / ~) แล้วมันจะแตกออกมาเป็นแบบนี้ครับ
Cpu0 : 27.6%us, 7.2%sy, 0.2%ni, 53.6%id, 10.9%wa, 0.0%hi, 0.5%si, 0.0%st Cpu1 : 28.1%us, 7.2%sy, 0.1%ni, 55.3%id, 9.0%wa, 0.0%hi, 0.4%si, 0.0%st Cpu2 : 27.8%us, 7.0%sy, 0.2%ni, 62.0%id, 2.8%wa, 0.0%hi, 0.2%si, 0.0%st Cpu3 : 28.1%us, 7.3%sy, 0.2%ni, 58.8%id, 3.4%wa, 0.2%hi, 2.1%si, 0.0%st
แยกกันให้เห็นหมดเลย ว่า CPU ไหนกำลังทำอะไรอยู่ ทีนี้ แต่ละ column ที่มีตัวอักษรย่อสองตัว มีความหมายต่างกันตามนี้ครับ
us => user :: เป็นการเรียกใช้ CPU ตามปกติของโปรแกรม ที่เป็นการประมวลผลภายในโปรแกรมนั้นๆ sy => system :: การเรียกใช้คำสั่งในระดับ kernel ที่มีการประมวลผลอยู่ภายใน kernel โดยไม่เรียกใช้ hardware ni => nice :: การจัดลำดับความสำคัญของการประมวลผล (priority) ไว้สลับการทำงานของ process ที่มี priority ต่างๆ กันเวลาเรียกใช้ cpu พร้อมๆ กัน id => idle :: cpu ที่ว่างงาน wa => iowait :: เป็นการ 'เสียเวลารอ' การเรียกใช้ และติดต่อกับ hardware ตั้งแต่ harddisk ram การ์ดจอ การ์ดแลน (แต่ส่วนใหญ่ก็ harddisk แหละ) hi => ? si => ? (สามอันนี้ขออภัยด้วยครับ ไม่ทราบจริงๆ ส่วนมากก็ไม่ค่อยขึ้นมาให้เห็นเท่าไหร่ด้วย) st => ?
บรรทัดที่ 4-5: เกี่ยวกับหน่วยความจำ ขอรวบเป็นหัวข้อเดียวเลยนะครับ เพราะมันเกี่ยวข้องกัน Mem: 8310380k total, 4970936k used, 3339444k free, 217448k buffers Swap: 6225904k total, 52816k used, 6173088k free, 3001860k cached สีแดง: RAM ทั้งหมดที่ติดตั้งไว้ และ OS มองเห็น (หมายถึงหน่วยความจำหลักอย่างเดียวครับ) สีชมพู: ใช้แรมไปแล้ว "ทั้งหมด" เท่าไหร่ สีเขียว: แรมที่ยังว่างจริงๆ (คือไม่ได้จองให้กับอะไรเลย) สีส้ม: แรมที่ถูกใช้เป็น buffer ที่พักข้อมูลก่อนที่จะมีการอ่าน/เขียนลง harddisk หรือ CPU สีม่วง: swap space พื้นที่แรมเสมือนทั้งหมด ที่ใช้พื้นที่จาก harddisk เก็บข้อมูลแทนแรม --- บน windows มันจะมีชื่อว่า pagefile สีน้ำเงิน: ปริมาณการใช้งาน swap space มากน้อยไม่ใช่ปัญหาเท่าไหร่ (ถึงมันจะไม่ควรใช้ก็ตาม) แต่ถ้าตัวเลขแกว่งไปมา (พร้อมกับ iowait พุ่ง) หมายความว่ามีปัญหาแรมไม่พอจนต้องมาเขียนลง swap space สีน้ำตาล: พื้นที่ swap space ที่ไม่ได้ใช้งาน สี ดำ: เป็น file system memory cache ครับ คือ linux จะมีการใช้ ram เพื่อเก็บข้อมูลไฟล์ที่มีการเรียกใช้งานบ่อยๆ ไว้ใน ram (เผื่อมีอะไรก็อ่านเอาจากแรมไปเลย เร็วกว่าเยอะ)
วิธีคิดพื้นที่แรมว่าง ให้คิดจาก free + cached ไม่นับพื้นที่ cache เป็นพื้นที่ที่มีการใช้งาน เพราะมันจะถูกลบออกได้เสมอถ้ามีความต้องการใช้แรมจาก process เยอะๆ
ส่วนพื้นที่ที่เหลือด้านล่าง จะเป็นรายการ process ทั้งหมด (แสดงเท่าที่พื้นที่จอเหลือ) เรียงลำดับตามปริมาณการใช้งาน CPU ของ process นั้นๆ (เปลี่ยนได้ครับ)
มีหัวข้อตามนี้ PID : หมายเลข process id USER : user ที่ process ทำงาน PR : priority ของ process ที่ nice เท่ากัน NI : รหัส nice เรียงความสำคัญของ process (ยิ่งน้อยยิ่งสำคัญ) VIRT : ปริมาณการใช้งาน virtual image ทั้งหมด (ตั้งแต่ process ยันเตไปถึงการเรียก library) RES / SHR : การใช้แรมส่วนของ private (เฉพาะภายใน app) / shared (ram กลางของระบบ) S : สถานะของ process %CPU : ปริมาณการใช้งาน CPU (นับต่อ core นะครับ) สมมติ cpu 4 core + process รัน 4 thread แต่ละ thread เรียกใช้ cpu เต็มที่ มันก็ขึ้น 400 ขึ้นมาได้เหมือนกัน %MEM : ปริมาณการใช้งาน ram เป็น % TIME+ : "ระยะเวลา" ที่เรียกใช้ CPU ทั้งหมดตั้งแต่รัน process (เพราะ process ไม่ได้ทำงานตลอดเวลา) COMMAND : คำสั่งที่ใช้รัน process
ลูกเล่นเพิ่มเติมของ top สามารถหาอ่านได้จากคำสั่ง man top นะครับ มีอีกเพียบ นี่แค่แซมเปิ้ลๆ *_*
คัดลอกมาจาก  //www.admin.in.th/webboard/index.php?topic=442.0
Create Date : 01 เมษายน 2554 |
Last Update : 1 เมษายน 2554 14:50:54 น. |
|
1 comments
|
Counter : 10705 Pageviews. |
|
 |
|
|
โดย: wwwwwwwwwwwww IP: 27.130.98.61 วันที่: 19 มกราคม 2561 เวลา:15:38:58 น. |
|
| |