เครื่องจะ full load แล้วก็กลับมาเป็นปกติ ทุก 10 นาทีเลยครับ สลับกันไป

พอดีเพิ่งให้ผู้ให้บริการลง os ให้ใหม่ centos 64bit + directadmin(วาง colo ครับ)แล้วทีนี้เครื่องจะ full load แบบ Cpu(s) : 0.0% id เลยน่ะครับ แบบนี้คือเครื่องใช้ cpu เต็ม 100% เลยใช่ไหมครับ

สังเกตจาก full load มันน่าจะเกิดจาก cpu(s) : sy อ่ะครับ ตัวนี้คือการใช้งานของ system ใช่ไหมครับ

แต่จะ full load ประมาณ 1 นาที แล้วก็จะกลับมาเป็นปกติครับ (Cpu(s) : 95.0% id) ปกติได้สัก 10 นาที มันก็จะขึ้น full load อีกครับ เป็นแบบนี้สลับกันไปตลอดครับ

ช่วงเวลาที่เป็นแม้แต่ตอน 6 โมงเช้าที่แทบไม่ค่อยมีคนเข้าเว็บก็เป็นครับ

cpu เป็น core i5 2500k ครับ

แบบนี้น่าจะเกิดจากสาเหตุอะไรหรอครับ

ปล.ตรง load average อาจจะไม่พุ่งมากนะครับ เพราะมันจะ full load อยู่แปปเดียวแล้วก็ลดครับ แต่ช่วงที่ full load นั้น เครื่องแทบค้างเลยครับ เวลากดคำสั่งเวลา ssh เข้าไป delay หลายวินาทีมากเลยครับ รูปแรกเป็น full load นะครับ รูปสองเป็นปกติครับ ห่างกันไม่กี่นาทีครับ

edit : สงสัยจะลงผิดหมวด จริง ๆ ควรลง Control Panel, Software & Technical Stuff มากกว่าใช่ไหมครับ ขออภัยด้วยครับ

0.8% id กับ 96.2% id

ดูแล้ว apache ก็เรียกมาไม่เยอะ

มีตั้ง Crontabs อะไรไว้ทุกๆ 10 นาทีหรือเปล่าครับ ลองเช็คดูหน่อย

ทำพวกเว็บ upload อะไรหรือเปล่าครับ

ทีแรกสงสัยว่าทำเว็บ upload แต่ดูจาก %wa แล้วน้อยมาก ไม่น่าจะใช่

ปัญหาน่าจะมาจาก script php ที่ใช้ มันไปวน loop หรืออะไรสักอย่างจนเครื่องทำงานหนัก ช่วงที่ load ขึ้น ลองเปิด apache status ดูครับ

ถ้า Script PHP วนลูป น่าจะ Timeout ก่อนแล้วนะครับ …

จริงๆแล้วอยากได้ข้อมูลมากกว่านี้

ได้ทำ Crontabs/Cronjobs อะไรไว้หรือเปล่าครับ?

TOP มีอะไรที่ใช้ CPU Usages มากกว่า httpd ไหมครับ? เช่น gzip?? หรือ Processes อื่นๆ

เป็นเว็บฝากรูปครับ รูปละไม่เกิน 200k ครับ

ส่วน crontab ผมยังไม่ได้ตั้งไว้เลยครับ แต่ไม่รู้ว่าค่า default ของระบบตั้งอะไรไว้บ้าง เดี๋ยวจะลองเชคดูครับ

สำหรับ php แทบไม่ได้ใช้เลยครับ เรียกรูปตรง ๆ กับ html ตรง ๆ เลยครับ

server-status เปิดดูแล้วปกตินะครับ W ก็มีตามปกติ ไม่เยอะจนเต็มครับ

ส่วน process ที่กินมาก ๆ เท่าที่ดูไม่มี process ไหนเป็นพิเศษเลยครับ พอช่วงมันจะ full load ตรงค่า cpu(s) : sy จะขึ้นมาเยอะทันที ผมก็สังเกตตรง process ด้านล่าง พวก httpd จากปกติ จะกิน 0.3 ก็กลายมากิน 2.0 บ้าง 3.0 บ้าง บางตัวกินไป 5.0 เลย

เหมือนกับว่าพอถึงช่วง full load ทุก process จะกินเยอะขึ้นหมดเลย

ตอนแรกสงสัย crontab ครับ แต่พอกดดูที่เมนู All User Cron Jobs ก็ไม่มี crontab ของ user ไหนตั้งอะไรไว้เลยครับ เพราะเครื่องเพิ่งลงใหม่ ๆ เลยครับ

ตอนเป็นปกติ load น้อยมากเลยครับ

top - 16:08:23 up 10:23, 1 user, load average: 0.04, 3.31, 6.04

Tasks: 549 total, 1 running, 547 sleeping, 0 stopped, 1 zombie

Cpu(s): 1.2%us, 2.4%sy, 0.0%ni, 92.1%id, 2.0%wa, 0.5%hi, 1.9%si, 0.0%st

Mem: 4044472k total, 3934584k used, 109888k free, 104320k buffers

Swap: 5079032k total, 124k used, 5078908k free, 3271492k cached

swap 124k used มีการใช้ swap นิดหน่อยแบบนี้ถือว่าปกติไหมครับ

คิดว่าหากเพิ่ม ram แล้วน่าจะหายครับ เพราะตอน full load mem free แทบไม่เหลือเลย

เอ…ผมเข้าใจว่า memory ของ linux มันต้องดูที่ cache ด้วยไม่ใช่หรอครับ เท่าที่ดูมีเหลือตั้ง 3GB อ่ะครับ

หรือว่าต้องดูที่ free memory ด้วยครับ

เวลา full load ตรง free memory จะเหลือ 20MB+

เวลา ปกติ ตรง free memory จะเหลือ 70MB+

อ้อ…พอดีนึกได้ว่า httpd มัน restart ทุกเที่ยงคืน แสดงว่ามันน่าจะมี crontab ของ directadmin อยู่ เลยลองไปหากระทู้ต่างๆ ดู เจอคุณ icez บอกไว้ว่าให้ดูที่ /etc/cron.d/directadmin เลยเจอแบบนี้ครับ ไม่รู้จะเกี่ยวข้องไหม



* * * * * root /usr/local/directadmin/dataskq

2 0-23/6 * * * root echo 'action=vacation&value=all' >> /usr/local/directadmin/data/task.queue;

#5 5 * * 0 root /sbin/quotaoff -a; /sbin/quotacheck -augm; /sbin/quotaon -a;

10 0 * * * root echo 'action=tally&value=all' >> /usr/local/directadmin/data/task.queue

20 4 1 * * root echo 'action=reset&value=all' >> /usr/local/directadmin/data/task.queue

0 4 * * * root echo 'action=check&value=license' >> /usr/local/directadmin/data/task.queue


76% system

  • -’ แปลกๆแล้วอะครับ อาจต้องการตัว monitor ที่ละเอียดกว่านี้ โดยเฉพาะที่มีเป็นกราฟ (mrtg/munin/cacti/zabbix)

อ่อครับผม เดี๋ยวลง mrtg แปปครับ เพิ่งเอาออกไปเมื่อคืน ทีแรกคิดว่า mrtg มีส่วนทำให้โหลดสูง แต่พอเอาออกไป ก็ไม่หายอยู่ดี

เวลามัน full load สังเกต process kswapd0 มันจะขึ้นมาบ่อยครับ แบบนี้เกี่ยวกับ swap หรือป่าวครับ แต่ดูที่ cached แรมยังเหลือเยอะอยู่เลยอ่ะครับ

ปรับแก้ httpd.conf ดูครับ

KeepAlive off

ServerLimit 350

MaxClient 350

ตอนนี้แก้เรียบร้อยแล้วครับ เดี๋ยวรอลองเทสช่วง peak time แล้วจะมาอัพเดทผลครับ ขอบคุณครับ

ที่แปลก ๆ restart httpd ตอน ตี 5 คนแทบไม่ค่อยมี แต่ใช้เวลา restart ค่อนข้างนานมากเลยครับ 70 วินาที แต่พอลองกับเซิฟตัวอื่นในช่วงเวลาที่คนใช้น้อยๆ จะไม่นานแบบนี้น่ะครับ

เมื่อก่อนผมใช้เซิฟเวอร์ spec ต่ำกว่ากว่า แต่เป็น rack 1u(dell) กลับไม่มีปัญหาเลย

เซิฟเวอร์ที่มีปัญหาอยู่ปัจจุบันเป็น mini pc ซึ่งมีสเปคสูงกว่าพอสมควร ทั้งแรม ทั้ง cpu ค่า config ต่าง ๆ ก็เอามาจากเซิฟเวอร์เก่า แต่โหลดดันพุ่งกระจาย

แบบนี้มีส่วนไหมครับว่าที่สเปคเดียวกันแบบ rack 1u จะโหลดน้อยกว่าแบบ mini pc เอามาก ๆ

ขออภัยที่โพสติดกันนะครับ เมื่อกี้ลืมโพสรูป แล้วตอน edit มันโพสรูปไม่ได้ครับ

แนบไฟล์รูป mrtg มาให้ดูนะครับ สังเกตว่าช่วงหลังเที่ยงคืน ทราฟฟิค+connection จะตกวูบลงมาเลย เหมือน cpu มันขึ้นสูงจนคนเข้าเว็บไม่ได้ครับ

เท่าที่ลองสังเกต ช่วงเวลาดังกล่าวจะเป็นช่วงที่ directadmin จะ restart httpd และเก็บ stat webalizer ซึ่งตรงนี้ผมอยากจะทราบว่าถ้าผมแก้ไปตอนตี 5 จะมีผลอะไรไหมครับ นอกจากจะทำให้เวลาที่เก็บ webalizer เปลี่ยนไป เพราะ webalizer นั้นผมแทบจะไม่ได้ใช้เลยครับ

จิงๆแก้เวลาได้นะครับ ผมมีลูกค้าท่านนึง ก็ให้ผมแก้ไปรัน หกโมงเช้า เพราะชวงเที่ยงคืน คนกำลังเข้าเว็บเยอะแล้วมีสะดุดไปครับ

ลองดูช่วงคนเข้าเยอะแล้วนะครับ โหลดก็ไม่ลดอยู่ดีครับ แถมเว็บช้ากว่าเดิมเพราะ connection เต็มด้วยอ่ะครับท่าน

ของผมน่าจะใช้อยู่ราว ๆ 600-700 อ่ะครับ ตอนนี้เลยปรับเป็น 1024 เผื่อไว้ครับ

ครับผม ขอบคุณครับ คราวนี้ผมคงแก้เป็นหกโมงเช้าเหมือนกันครับ จะได้ไม่สะดุดตอนเที่ยงคืน

ไม่ทราบว่าท่านพอจะทราบไหมครับว่า ที่มันรันตอนเที่ยงคืนนี่ มันทำอะไรบ้าง เท่าที่ผมรู้ก็จะมี

  1. restart httpd

  2. webalizer

แล้วมีนอกจากนี้อีกไหมครับ

ตอนนี้เท่าที่สังเกต เวลา full load kswapd0 จะขึ้นมาบ่อยครับ ไม่ทราบว่าเกี่ยวกับแรมไม่พอไหมครับ เพราะเท่าที่ทราบ process ตัวนี้จะเกี่ยวกับ swap

ตอนนี้คิดว่าน่าจะรู้สาเหตุเพิ่มเติมแล้วนะครับ จากที่สังเกตมาหลายวัน

เครื่องจะ full load ตอน free memory เหลือ 20mb+ ครับ ในช่วงนี้ process ที่ชื่อ kswapd0 จะรันขึ้นมาอยู่ในลำดับต้น ๆ เวลา top ดู

นั่นก็คือ process นี้ใช้ cpu เยอะนั่นเองครับ เป็นผลให้ process อื่นกิน cpu เยอะตามขึ้นไปด้วยแม้แต่ httpd ครับ (ตอน full load จะกิน process ที่ (sy)system นะครับ)

ในช่วง full load นี้ free memory จะค่อย ๆ เพิ่มขึ้น ๆ ๆ จนถึง 70-80mb+ ครับ

พอ free memory ถึงระดับ 70-80mb แล้ว cpu จะลดการใช้งานอย่างรวดเร็ว idle กลับมาที่ 95%+

ถึงตอนนี้ ผมยัง งง อยู่ว่า buffer 100 กว่า mb + cached อีกกว่า 3gb มันไม่ได้ช่วยอะไรเลยหรอครับ ไหนใคร ๆ ก็ว่า cached คือ free ram ที่ระบบคืนกลับมา

แต่เครื่องผม พอในส่วน free memory หมด เครื่องแทบเดี้ยงเลยอ่ะครับ T_T

แบบนี้ผมจะซื้อแรมใส่อีก 4GB ดีไหมครับ จะแก้ถูกทางไหมครับ แต่ก็กลัวว่า เดี๋ยว cached มันก็กินไปหมดอีก -

แปลกจัง rack 1u dell ใช้ 3gb ไม่มีปัญหา แต่พอมาใช้ minipc ใช้ 4gb ดันมีปัญหา T_T