Script ใข้งาน cpu หนัก

แบบวางเครือ่ง colo อยู่ใช้ linux เป็น os
แต่ ใช้แค่สองเวป แต่ cpu โหลดไป 5.xx กว่าๆ ตลอดเลย
ยิงคนเข้าเยอะๆ(ไม่กี่ร้อย ไม่ถึงห้าร้อย)
ปรากฤ cpu ดูจากการะ top ขึ้นไป 20.xx
แบบ ปกติมันน่าจะ 0.xx
ไม่รู้ว่า สมควรแก้ที่ setver หรือว่า config เวปดี
เพราะใช้ พวก ims , smf , diary script นะครับ

ตอนที่ รัน top แล้วตัวไหนที่มัน load ครับ เช่น apache หรืิอ mysql แลัว processese อื่นๆเป็นอย่างไร?

smf ที่เคยเห็นโหลดไม่เยอะมากครับ
ลองรัน iostat -x 2 6 แล้วเอามาดูกัน หรือเอา top มาดูก็ได้ครับ

PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND
26018 root 16 0 7848 3348 3280 S 76.1 0.3 16:43 0 httpd
23453 mysql 16 0 25496 15M 2268 S 8.3 1.5 291:50 0 mysqld

PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND
26018 root 16 0 7848 3348 3288 S 93.5 0.3 16:53 0 httpd
22684 root 16 0 1348 1348 892 R 3.2 0.1 5:15 0 top

load average: 3.33, 3.77, 4.65
load average: 6.33, 4.67, 4.67

ขนาดอันนี้ ตอนเทียงคืนแล้วนะครับ คนแทบไม่เหลือแล้ว

apache และ mysql เวอร์ชั่นไหนครับ

แต่ที่เห็นชัดๆ คือ apache ใช้ %CPU ถึง 93.5 และ mysqld ใช้ Memory ถึง 15M แต่รายละเอียดยังไม่ชัด น่าจะ list รายการของ mysqld และ httpd มาทั้งหมด

เริ่มต้นให้ตรวจสอบดู log file ของ apache ดูก่อน คือไฟล์ access_log หรือ error_log ถ้ามีขนาดใหญ่มาก ก็อาจจะทำให้ apache ทำงานหนักได้

ปัญหาน่าจะอยู่ที่ apache หรือ script
ลองดู

df

iostat -x 2 6

ls -alS /usr/local/apache/logs/ |head -n10 (หรือ /var/log/httpd)

หน่อยครับ

[root@ns root]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/hda3 73568972 10878520 58893088 16% /
/dev/hda1 101089 8341 87529 9% /boot
none 511924 0 511924 0% /dev/shm

[root@ns root]# iostat -x 2 6
-bash: iostat: command not found

[root@ns root]# ls -alS /var/log/httpd |head -n10
total 1764
-rw-r–r-- 1 root root 434039 Sep 11 03:01 access_log.1
-rw-r–r-- 1 root root 368645 Sep 4 03:22 access_log.2
-rw-r–r-- 1 root root 344942 Aug 28 03:38 access_log.3
-rw-r–r-- 1 root root 268101 Aug 21 03:47 access_log.4
-rw-r–r-- 1 root root 93861 Sep 13 09:50 access_log
-rw-r–r-- 1 root root 81745 Sep 4 04:02 error_log.2
-rw-r–r-- 1 root root 50045 Sep 11 04:02 error_log.1
-rw-r–r-- 1 root root 34449 Aug 21 04:26 error_log.4
-rw-r–r-- 1 root root 26968 Aug 28 04:26 error_log.3

เป็น fedora core 1 นะครับ’

ลอง top ให้ดูแบบให้เห็น apache และ mysqld ทั้งหมดได้ไหมครับ

[root@ns root]# iostat -x 2 6
-bash: iostat: command not found

อันนี้ต้องติดตั้ง sysstat ครับ

ลอง repair หรือ optimize MySQL ดาต้าเบส ดูนะครับ แต่ที่สำคัญคือ ต้องดู logs และเป็นผม ผมจะ sniff ดูครับว่าเกิดจากอะไร

ใช้ พวก
sniffit
ethereal ฯลฯ

ลอง top ให้ดูแบบให้เห็น apache และ mysqld ทั้งหมดได้ไหมครับ

ได้แบบนี้นะครับ

21872 root 16 0 11840 11M 11760 S 52.9 1.1 10:23 0 httpd
21781 mysql 16 0 21852 21M 2500 S 4.4 2.1 10:17 0 mysqld
24096 root 17 0 1268 1268 896 R 2.9 0.1 3:23 0 top
24753 root 16 0 2052 2044 1772 S 0.1 0.1 0:00 0 sshd
32256 root 18 0 492 492 420 S 0.1 0.0 0:00 0 sleep
1 root 16 0 416 388 364 S 0.0 0.0 0:06 0 init
2 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 keventd
3 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kapmd
4 root 34 19 0 0 0 SWN 0.0 0.0 0:00 0 ksoftirqd/0
6 root 25 0 0 0 0 SW 0.0 0.0 0:00 0 bdflush
5 root 15 0 0 0 0 SW 0.0 0.0 0:23 0 kswapd
7 root 15 0 0 0 0 SW 0.0 0.0 0:01 0 kupdated
8 root 24 0 0 0 0 SW 0.0 0.0 0:00 0 mdrecoveryd
12 root 16 0 0 0 0 SW 0.0 0.0 5:17 0 kjournald
122 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 khubd
2916 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kjournald
3670 root 16 0 572 552 496 S 0.0 0.0 1:20 0 syslogd
3675 root 16 0 392 384 332 S 0.0 0.0 0:25 0 klogd
3742 root 15 0 420 372 372 S 0.0 0.0 0:00 0 apmd
3782 root 16 0 568 532 388 S 0.0 0.0 0:02 0 smartd
4014 named 16 0 1988 1640 1344 S 0.0 0.1 0:06 0 named
4028 root 15 0 1296 1216 1128 S 0.0 0.1 0:15 0 sshd
4044 root 16 0 808 760 688 S 0.0 0.0 0:00 0 xinetd
4187 root 16 0 500 488 448 S 0.0 0.0 0:00 0 couriertcpd
4190 root 15 0 360 356 304 S 0.0 0.0 0:00 0 courierlogger
4199 root 25 0 492 440 440 S 0.0 0.0 0:00 0 couriertcpd
4202 root 25 0 192 156 156 S 0.0 0.0 0:00 0 courierlogger
4209 root 15 0 500 488 448 S 0.0 0.0 0:00 0 couriertcpd

httpd version 1.3.xx รึเปล่าครับเนี่ย ทำไมมันขึ้นมาแค่อันเดียว

เครื่อง ram เท่าไหร่ฮะ สอบถามนิดนึง

httpd ตัวนั้น เป็น backdoor หรือ irc หรือเปล่าครับ ทำไมมีอันเดียว
ลอง

ps -ef|egrep “httpd|apache”

ผมกำลังสงสัยอีกอันคือ IO โหลด แต่ไม่เห็น iostat (ลง sysstat เสีย)
และไม่เห็นตรงส่วนหัวของ top เลยยังไม่ทราบข้อมูลมากกว่านี้
ตอนแรกนึกว่า /var เต็ม เลยทำให้เขียน log ไม่ลง แต่ไม่เต็ม (df)
ดูจากขนาด /var/log/access_log แล้ว การทำงานน้อยมากๆครับ บางอย่างผิดปกติแน่
เครื่องเป็น dedicated ใช้คนเดียวหรือเปล่า หรือ vps?

ผมไม่ได้ลงเครืองนี้เองนะครับมีคนอื่นลงให้ ไม่รู้เหมือนกันทำไม httpd ถึงเป็นรวม
เครือ่ง ram1gb ครับ มีเวปหนักๆแค่สองเวป แต่ก็ไม่หนักมาก นะครับ connect
ไม่ถึง สองร้อย
ส่วน iostat มีเวปส่วนลงไหมครับ หรือจะแก้เอย่างไรให้มันมีได้หรือครับ

[root@ns root]# ps -ef|egrep "httpd|apache"
root 431 1 3 21:49 ? 00:00:02 /usr/sbin/httpd
root 439 431 0 21:50 ? 00:00:00 /usr/sbin/httpd
apache 440 431 2 21:50 ? 00:00:01 /usr/sbin/httpd
apache 441 431 1 21:50 ? 00:00:01 /usr/sbin/httpd
apache 442 431 7 21:50 ? 00:00:04 /usr/sbin/httpd
apache 443 431 0 21:50 ? 00:00:00 /usr/sbin/httpd
apache 445 431 7 21:50 ? 00:00:05 /usr/sbin/httpd
apache 446 431 5 21:50 ? 00:00:03 /usr/sbin/httpd
apache 448 431 2 21:50 ? 00:00:01 /usr/sbin/httpd
apache 451 431 0 21:50 ? 00:00:00 /usr/sbin/httpd
apache 452 431 2 21:50 ? 00:00:01 /usr/sbin/httpd
apache 453 431 1 21:50 ? 00:00:00 /usr/sbin/httpd
apache 456 431 2 21:50 ? 00:00:01 /usr/sbin/httpd
apache 457 431 2 21:50 ? 00:00:01 /usr/sbin/httpd
apache 458 431 4 21:50 ? 00:00:03 /usr/sbin/httpd
apache 459 431 1 21:50 ? 00:00:00 /usr/sbin/httpd
apache 462 431 2 21:50 ? 00:00:01 /usr/sbin/httpd
apache 463 431 2 21:50 ? 00:00:01 /usr/sbin/httpd
apache 464 431 4 21:50 ? 00:00:02 /usr/sbin/httpd
apache 465 431 3 21:50 ? 00:00:02 /usr/sbin/httpd
apache 466 431 0 21:50 ? 00:00:00 /usr/sbin/httpd
apache 472 431 2 21:50 ? 00:00:01 /usr/sbin/httpd
apache 473 431 2 21:50 ? 00:00:01 /usr/sbin/httpd
apache 474 431 2 21:50 ? 00:00:01 /usr/sbin/httpd
apache 478 431 1 21:50 ? 00:00:00 /usr/sbin/httpd
apache 479 431 4 21:50 ? 00:00:02 /usr/sbin/httpd
apache 480 431 2 21:50 ? 00:00:01 /usr/sbin/httpd
apache 483 431 6 21:50 ? 00:00:03 /usr/sbin/httpd
apache 486 431 5 21:50 ? 00:00:03 /usr/sbin/httpd
apache 487 431 1 21:50 ? 00:00:00 /usr/sbin/httpd
apache 488 431 3 21:50 ? 00:00:01 /usr/sbin/httpd
apache 489 431 1 21:50 ? 00:00:00 /usr/sbin/httpd
apache 492 431 4 21:50 ? 00:00:02 /usr/sbin/httpd
root 572 32733 0 21:51 pts/2 00:00:00 egrep httpd|apache

ส่วนหัวของ top นะครับ

21:52:34 up 15 days, 10:19, 3 users, load average: 6.85, 5.93, 5.82
103 processes: 94 sleeping, 4 running, 5 zombie, 0 stopped
CPU states: cpu user nice system irq softirq iowait idle
total 98.4% 0.0% 1.5% 0.0% 0.0% 0.0% 0.0%
Mem: 1023852k av, 856336k used, 167516k free, 0k shrd, 138420k buff
367348k active, 299052k inactive
Swap: 2096472k av, 61788k used, 2034684k free 316204k cached

RAM 1G ไม่น้อย swap ก็ไม่ค่อยได้ใช้
เหมือนจะเป็นที่ apache (หรือ script) จริงๆ แล้วละครับ

ขอดูอีกอันนะครับ ขออภัยที่ไล่ถาม

rpm -q httpd

cat /proc/cpuinfo

uname -a

(ลบชื่อ hostname ออกก็ได้ ต้องการดู kernel version)

tail /var/log/httpd/error_log -n50

(บรรทัดสุดท้าย ลบชื่อไฟล์หรือชื่อเว็บออกจากผลลัพธ์ก็ได้ครับ)

จะได้ช่วยกันดู

ถ้าออกมายังปกติหมด แสดงว่าเป็นที่ Script จริงๆแล้ว คงต้องจูน script ครับ

ขอบคุณที่ช่วยเหลือครับ

[root@ns root]# rpm -q httpd
httpd-2.0.50-1.0

[root@ns root]# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel

[Tue Sep 13 21:49:35 2005] [warn] child process 32088 still did not exit, sending a SIGTERM
[Tue Sep 13 21:49:35 2005] [warn] child process 32099 still did not exit, sending a SIGTERM
[Tue Sep 13 21:49:35 2005] [warn] child process 32101 still did not exit, sending a SIGTERM
[Tue Sep 13 21:49:35 2005] [warn] child process 32104 still did not exit, sending a SIGTERM
[Tue Sep 13 21:49:35 2005] [warn] child process 32116 still did not exit, sending a SIGTERM
[Tue Sep 13 21:49:35 2005] [warn] child process 32123 still did not exit, sending a SIGTERM
[Tue Sep 13 21:49:35 2005] [warn] child process 32138 still did not exit, sending a SIGTERM

เอ่อ… ลอง upgrade httpd ซักหน่อยท่าจะดีนะครับ

ผมลองอยู่ถึงตีสามเมื่อวาน
มีคนเข้า แค่ สองสามคน
แต่ load avarage ยัง 2.xx เลยนะครับ
คิดว่าน่าจะเสียที่ระบบ มากว่า
หรือไม่อาจมีใครแอบทำไรหรือเปล่าก็ไม่ทราบนะครับ

CPU=P4 2.4 ก็ไม่ช้า

บรรทัดนี้
[warn] child process 31919 still did not exit, sending a SIGTERM

คงเกิดตอนพยายาม restart httpd ปกติครับ ไม่มีอะไร

ตอนนี้ผมสันนิษฐานว่า script คงมีปัญหาครับ

ลืมถามไปอีกตัว ตัวสุดท้ายแล้ว

dmesg

ลอง top แล้วให้ output save ลงไฟล์แล้ว เอามาให้ดูจะดีกว่า

ไม่แน่ใจคำสั่งลองอันนี้ดู


top -bn1 > top.txt

top หรือ ps จะบอกได้ดีที่สุดว่า process ไหนทำงานผิดปรกติ

ลอง top แล้วให้ output save ลงไฟล์แล้ว เอามาให้ดูจะดีกว่า

ไม่แน่ใจคำสั่งลองอันนี้ดู


top -bn1 > top.txt

top หรือ ps จะบอกได้ดีที่สุดว่า process ไหนทำงานผิดปรกติ

00:39:24 up 16 days, 13:06, 3 users, load average: 3.55, 3.18, 3.32
107 processes: 99 sleeping, 3 running, 5 zombie, 0 stopped
CPU states: cpu user nice system irq softirq iowait idle
total 81.5% 0.0% 2.2% 0.0% 0.0% 0.0% 16.1%
Mem: 1023852k av, 949508k used, 74344k free, 0k shrd, 130112k buff
411952k active, 373864k inactive
Swap: 2096472k av, 62800k used, 2033672k free 415992k cached

PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND
431 root 16 0 11836 11M 11756 S 68.5 1.1 15:44 0 httpd
15769 root 17 0 1228 1228 896 R 6.0 0.1 2:18 0 top
20240 root 17 0 1204 1204 888 R 4.5 0.1 0:00 0 top
21781 mysql 15 0 22748 22M 2576 S 2.6 2.2 63:39 0 mysqld
20244 root 18 0 604 604 520 R 0.7 0.0 0:00 0 mysqladmin
1 root 16 0 416 388 364 S 0.0 0.0 0:07 0 init
2 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 keventd
3 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kapmd
4 root 34 19 0 0 0 SWN 0.0 0.0 0:00 0 ksoftirqd/0
6 root 25 0 0 0 0 SW 0.0 0.0 0:00 0 bdflush
5 root 15 0 0 0 0 SW 0.0 0.0 0:24 0 kswapd
7 root 15 0 0 0 0 SW 0.0 0.0 0:01 0 kupdated
8 root 24 0 0 0 0 SW 0.0 0.0 0:00 0 mdrecoveryd
12 root 15 0 0 0 0 SW 0.0 0.0 5:56 0 kjournald
122 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 khubd
2916 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kjournald
3670 root 16 0 572 552 496 S 0.0 0.0 1:27 0 syslogd
3675 root 16 0 392 384 332 S 0.0 0.0 0:28 0 klogd
3742 root 15 0 420 372 372 S 0.0 0.0 0:00 0 apmd
3782 root 15 0 568 532 388 S 0.0 0.0 0:03 0 smartd
4014 named 16 0 1988 1640 1344 S 0.0 0.1 0:07 0 named
4028 root 16 0 1296 1216 1128 S 0.0 0.1 0:18 0 sshd
4044 root 16 0 808 760 688 S 0.0 0.0 0:00 0 xinetd
4187 root 16 0 500 488 448 S 0.0 0.0 0:00 0 couriertcpd
4190 root 16 0 360 356 304 S 0.0 0.0 0:00 0 courierlogger
4199 root 25 0 492 440 440 S 0.0 0.0 0:00 0 couriertcpd
4202 root 25 0 192 156 156 S 0.0 0.0 0:00 0 courierlogger
4209 root 16 0 500 488 448 S 0.0 0.0 0:00 0 couriertcpd
4215 root 16 0 360 356 304 S 0.0 0.0 0:00 0 courierlogger
4220 root 25 0 484 428 428 S 0.0 0.0 0:00 0 couriertcpd
4222 root 25 0 192 152 152 S 0.0 0.0 0:00 0 courierlogger
4230 qmails 16 0 376 364 296 S 0.0 0.0 0:36 0 qmail-send
4232 qmaill 15 0 440 432 380 S 0.0 0.0 0:04 0 splogger
4233 root 16 0 348 344 268 S 0.0 0.0 0:00 0 qmail-lspawn
4234 qmailr 15 0 360 344 276 S 0.0 0.0 0:00 0 qmail-rspawn
4235 qmailq 16 0 316 300 264 S 0.0 0.0 0:03 0 qmail-clean
4252 root 18 0 19544 2120 2120 S 0.0 0.2 0:03 0 spamd
4264 popuser 15 0 19120 3880 2340 S 0.0 0.3 0:04 0 spamd
4267 popuser 16 0 18840 3332 1760 S 0.0 0.3 0:03 0 spamd
4279 root 16 0 368 328 316 S 0.0 0.0 0:00 0 gpm
4400 root 16 0 2948 1832 1792 S 0.0 0.1 0:49 0 httpsd
4422 root 16 0 604 580 532 S 0.0 0.0 0:00 0 crond
4446 xfs 16 0 3176 768 716 S 0.0 0.0 0:00 0 xfs
4471 daemon 16 0 560 544 500 S 0.0 0.0 0:00 0 atd
4498 root 18 0 340 296 296 S 0.0 0.0 0:00 0 mingetty
4499 root 18 0 344 296 296 S 0.0 0.0 0:00 0 mingetty
4500 root 19 0 340 296 296 S 0.0 0.0 0:00 0 mingetty
4501 root 21 0 340 296 296 S 0.0 0.0 0:00 0 mingetty
4502 root 22 0 344 296 296 S 0.0 0.0 0:00 0 mingetty
4503 root 23 0 344 296 296 S 0.0 0.0 0:00 0 mingetty
4504 root 15 0 940 684 684 S 0.0 0.0 0:00 0 gdm-binary
4549 root 15 0 135M 1560 1124 S 0.0 0.1 0:47 0 X
4668 gdm 15 0 4704 3392 2732 S 0.0 0.3 0:36 0 gdmgreeter
23227 sudsuang 16 0 624 520 512 S 0.0 0.0 0:01 0 gzip
4354 root 24 0 1020 1020 852 D 0.0 0.0 0:00 0 usermng
4744 root 25 0 1020 1020 852 D 0.0 0.0 0:00 0 usermng
21757 root 23 0 1164 1164 1024 S 0.0 0.1 0:00 0 safe_mysqld
26390 psaadm 23 0 0 0 0 Z 0.0 0.0 0:00 0 httpsd <defunct>
26504 psaadm 24 0 0 0 0 Z 0.0 0.0 0:00 0 httpsd <defunct>
26551 psaadm 20 0 0 0 0 Z 0.0 0.0 0:00 0 httpsd <defunct>
26630 psaadm 25 0 0 0 0 Z 0.0 0.0 0:00 0 httpsd <defunct>
26677 psaadm 25 0 0 0 0 Z 0.0 0.0 0:00 0 httpsd <defunct>
15697 root 16 0 2052 2044 1772 S 0.0 0.1 0:05 0 sshd
15699 root 16 0 1376 1376 1144 S 0.0 0.1 0:00 0 bash
15776 root 16 0 2036 2028 1772 S 0.0 0.1 0:00 0 sshd
15778 root 16 0 1388 1388 1152 S 0.0 0.1 0:00 0 bash
15833 root 16 0 940 940 824 S 0.0 0.0 0:00 0 Kmysql_processl
16806 root 16 0 2036 2028 1772 S 0.0 0.1 0:00 0 sshd
16809 root 16 0 1388 1388 1152 S 0.0 0.1 0:00 0 bash