สวัสดีครับ
ผมกำลังเจอปัญหา server ที่ลง CenOS มันช้าเป็นบางช่วงและค้นหาข้อมูลในเน็ตปรากฎว่าได้แนวทางและเครื่องมือการวิเคราะห์จากบอร์ดนี้เยอะมากๆครับ (ขอบคุณพี่ๆทุกท่านครับ _/_)
นี่คือข้อมูลจาก server ผมที่ใช้คำสั่ง top ครับ
top - 12:54:55 up 289 days, 11:52, 1 user, load average: 75.25, 39.22, 20.72
Tasks: 655 total, 1 running, 646 sleeping, 1 stopped, 7 zombie
Cpu(s): 2.0%us, 1.2%sy, 0.0%ni, 0.0%id, 95.1%wa, 1.0%hi, 0.7%si, 0.0%st
Mem: 2066848k total, 2017784k used, 49064k free, 3716k buffers
Swap: 4128760k total, 2182912k used, 1945848k free, 267432k cached
การวิเคราะห์ของผม(แบบมือใหม่นะครับ)
-
ดู load average: 75.25, 39.22, 20.72 => เยอะมากรู้ล่ะว่าเวปเข้าไม่ได้เพราะ load สูงปี๊ด
-
ดู 95.1%wa => มี iowait สูงมากแสดงว่า hdd, การ์ดจอ, การ์ดแลนอย่างใดอย่างหนึ่ง(หรือหลายอย่าง)ทำงานตอบสนองไม่ทัน (เริ่มสงสัยว่าเป็นที่ hdd เปล่าประมาณว่าใกล้เสีย)
-
ดู Mem: 2066848k total, 2017784k used => มี 2G ใช้เต็ม 2G
-
ดู Swap: 4128760k total, 2182912k used => เข้าใจว่า ram หมดเลยมาขอใช้เนื้อที่ hdd อีก 2G
จากข้อมูลตรงนี้ผมสรุปว่า
เวปช้าเพราะ ram ไม่พอ แล้วที่ iowait ขึ้นสูงก็เพราะมันไปใช้ swap ซึ่งเป็นส่วนของ hdd มันก็เลยตอบสนองไม่ทัน
แนวทางแก้คือ เพิ่ม ram จาก 2G เป็น 4G
ที่ผมไม่ค่อยแน่ใจคือวิเคราะห์ตรง iowait ที่มันขึ้นสุงเพราะไปใช้ swap (ไม่แน่ใจว่า hdd มีปัญหาหรือเปล่า)
ผมเห็นของบางท่านที่มีปัญหา load สูงแล้ว capture มาให้ดูมีแรม 4G ใช้เต็มและยังเลยไปใช้ swap อีก 5G แต่ iowait ยังไม่ถึง 1% เลย
(ก็เลยสับสนว่าอาจเข้าใจผิดว่า iowait สูงเพราะไปใช้ swap เยอะ)
อีกอย่างนึงผมไม่แน่ใจว่าหลักการดูว่า load สูงเกินหรือเปล่า? ผมจะใช้ดูจำนวนคอร์ของ cpu เช่น server ผมใช้ cpu รุ่น intel i5-750 มันจะมี 4 คอร์ก็คือ load ไม่ควรเกิน 4
(แล้วที่เป็น i7 ผมเห็นมันมี 4 คอร์ 8 เทรด หมายถึง load ไม่ควรเกิน 8 หรือเปล่า?)
อีกอย่างนึงที่สงสัยบางทีผมเห็น linux บางครั้งมีแรมเท่าไหร่เริ่มต้นมามันก็ใช้เท่านั้นเลย(ยังไม่มีเวปเลย)งงว่าถ้างั้นจะรู้ได้ไงว่าใช้จริงเท่าไหร่บางทีเหมือนระบบมันจองเอาไว้ก่อน - -"
มันพอจะมีทูลอะไรที่ monitor load หรือ เก็บเป็นสถิตทั้งวัน (load history) จะได้รู้ว่าช่วงไหน load สูง หรือให้ส่งเมล์แจ้งบ้างไหมครับ
แล้วที่พี่ๆวิเคราะห์ออกมาจนเจอว่าเป็นที่ hdd เสียนี่ดูยังไง ใช้คำสั่งไหนหรอครับ
ขอความกรุณาแนะนำมือถือใหม่ด้วยครับ
ขอบคุณครับ _/_