笑剑
2001-10-23, 15:49
前段时间和斑竹大人讨论了mysql线程问题!有一段时间mysql线程问题得以缓解!现在mysql线程又困扰着我!
为了彻底解决这个问题,我在这里重申这个问题,希望斑竹大人不介意!
现在我站点出现以下问题:
1.一般正常情况下:
[root@x-mud bin]# ps -e|grep mysqld
10479 ? 00:00:00 safe_mysqld
10492 ? 00:00:01 mysqld
10494 ? 00:00:01 mysqld
10495 ? 00:20:16 mysqld
27201 ? 00:00:00 mysqld <defunct>
27202 ? 00:00:00 mysqld
//以上为mysql线程情况
2.一般正常情况下:
[root@x-mud bin]# top (查看服务器线程运行情况)
2:16pm up 15:59, 1 user, load average: 2.40, 1.49, 1.78
78 processes: 67 sleeping, 8 running, 0 zombie, 3 stopped
CPU states: 65.1% user, 14.8% system, 0.0% nice, 35.0% idle
Mem: 387196K av, 359212K used, 27984K free, 74200K shrd, 29744K buff
Swap: 1052216K av, 464K used, 1051752K free 232308K cached
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
27663 root 8 0 7172 7172 1916 S 18.6 1.8 0:01 mysqld
27662 root 20 0 25924 25M 616 R 17.8 6.6 0:01 mysqldump
24268 nobody 2 0 3428 3428 2212 S 16.0 0.8 0:25 httpd
27643 nobody 20 0 3356 3356 2144 R 11.8 0.8 0:00 httpd
27646 nobody 1 0 3268 3268 2156 S 8.7 0.8 0:00 httpd
10495 root 9 0 7172 7172 1916 S 6.5 1.8 20:54 mysqld
27667 root 17 0 7172 7172 1916 S 4.7 1.8 0:00 mysqld
27668 root 19 0 7172 7172 1916 R 3.9 1.8 0:00 mysqld
27666 root 10 0 7172 7172 1916 S 3.5 1.8 0:00 mysqld
27669 root 19 0 7172 7172 1916 R 1.9 1.8 0:00 mysqld
24277 nobody 3 0 3592 3592 2248 S 0.9 0.9 0:23 httpd
27481 nobody 2 0 3336 3336 2184 R 0.7 0.8 0:03 httpd
27600 root 1 0 1036 1036 816 R 0.7 0.2 0:00 top
27651 nobody 1 0 2088 2088 1976 S 0.3 0.5 0:00 httpd
24278 nobody 1 0 3412 3412 2228 S 0.1 0.8 0:18 httpd
27475 nobody 0 0 3356 3356 2172 S 0.1 0.8 0:01 httpd
27549 nobody 0 0 3376 3376 2192 S 0.1 0.8 0:01 httpd
//重点看看这一行信息:(cpu运行时资源分配状况)
78 processes: 67 sleeping, 8 running, 0 zombie, 3 stopped
CPU states: 85.1% user, 14.8% system, 0.0% nice, 0.0% idle
以下为出现mysql线程问题的服务器运行状况:
1。root@x-mud bin]# top (查看服务器线程运行情况)
2:16pm up 15:59, 1 user, load average: 2.40, 1.49, 1.78
178 processes: 167 sleeping, 8 running, 0 zombie, 3 stopped
CPU states: 99.1% user, 14.8% system, 0.0% nice, 0.0% idle
Mem: 387196K av, 359212K used, 27984K free, 74200K shrd, 29744K buff
Swap: 1052216K av, 464K used, 1051752K free 232308K cached
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
27663 root 8 0 7172 7172 1916 S 18.6 1.8 0:01 mysqld
27663 root 8 0 7172 7172 1916 S 18.6 1.8 0:01 mysqld
27663 root 8 0 7172 7172 1916 S 18.6 1.8 0:01 mysqld
27663 root 8 0 7172 7172 1916 S 18.6 1.8 0:01 mysqld
27663 root 8 0 7172 7172 1916 S 18.6 1.8 0:01 mysqld
.....................
27663 root 8 0 7172 7172 1916 S 18.6 1.8 0:01 mysqld
27663 root 8 0 7172 7172 1916 S 18.6 1.8 0:01 mysqld
27663 root 8 0 7172 7172 1916 S 18.6 1.8 0:01 mysqld
27663 root 8 0 7172 7172 1916 S 18.6 1.8 0:01 mysqld
27663 root 8 0 7172 7172 1916 S 18.6 1.8 0:01 mysqld
2.[root@x-mud bin]# ps -e|grep mysqld
10479 ? 00:00:00 safe_mysqld
10492 ? 00:00:01 mysqld
10494 ? 00:00:01 mysqld
10495 ? 00:20:16 mysqld
27201 ? 00:00:00 mysqld <defunct>
27202 ? 00:00:00 mysqld
..........
10479 ? 00:00:00 safe_mysqld
10492 ? 00:00:01 mysqld
10494 ? 00:00:01 mysqld
10495 ? 00:20:16 mysqld
27201 ? 00:00:00 mysqld <defunct>
27202 ? 00:00:00 mysqld
3.[root@x-mud bin]# ps -e|grep httpd
28054 ? 00:00:01 httpd
28136 ? 00:00:02 httpd
28215 ? 00:00:00 httpd
28219 ? 00:00:00 httpd
28229 ? 00:00:00 httpd
28280 ? 00:00:00 httpd
28281 ? 00:00:00 httpd
28282 ? 00:00:00 httpd
28283 ? 00:00:00 httpd
28284 ? 00:00:00 httpd
28286 ? 00:00:00 httpd
28288 ? 00:00:00 httpd
28289 ? 00:00:00 httpd
28291 ? 00:00:00 httpd
28294 ? 00:00:00 httpd
28297 ? 00:00:00 httpd
28298 ? 00:00:00 httpd
28304 ? 00:00:00 httpd
28306 ? 00:00:00 httpd
28310 ? 00:00:00 httpd
28311 ? 00:00:00 httpd
28330 ? 00:00:00 httpd
28334 ? 00:00:00 httpd
.......
28054 ? 00:00:01 httpd
28136 ? 00:00:02 httpd
28215 ? 00:00:00 httpd
28219 ? 00:00:00 httpd
28229 ? 00:00:00 httpd
28280 ? 00:00:00 httpd
28281 ? 00:00:00 httpd
28282 ? 00:00:00 httpd
28283 ? 00:00:00 httpd
28284 ? 00:00:00 httpd
28286 ? 00:00:00 httpd
28288 ? 00:00:00 httpd
28289 ? 00:00:00 httpd
28291 ? 00:00:00 httpd
28294 ? 00:00:00 httpd
28297 ? 00:00:00 httpd
28298 ? 00:00:00 httpd
28304 ? 00:00:00 httpd
28306 ? 00:00:00 httpd
28310 ? 00:00:00 httpd
28311 ? 00:00:00 httpd
28330 ? 00:00:00 httpd
28334 ? 00:00:00 httpd
///重点看看这两行
178 processes: 167 sleeping, 8 running, 0 zombie, 3 stopped
CPU states: 99.1% user, 14.8% system, 0.0% nice, 0.0% idle
针对上述问题:
我综合一下:
1。重点参数分析:
78 processes: 67 sleeping, 8 running, 0 zombie, 3 stopped
CPU states: 65.1% user, 14.8% system, 0.0% nice, 35.0% idle
178 processes: 167 sleeping, 8 running, 0 zombie, 3 stopped
CPU states: 99.1% user, 14.8% system, 0.0% nice, 0.0% idle
当访问用户请求过多的时候,httpd线程也随即增加,cpu被占用的资源也随即上升,到达一定程度时,cpu资源被耗费掉,httpd线程滞留,httpd线程所触发的mysql线程也跟着滞留,没有正常中断,所以用top指令查看的时候,看到一大堆mysql线程!关闭apache服务,httpd线程全部消失,mysql线程也消失,重新启动apache服务,外界访问正常访问,httpd线程正常运行,mysql线程也正常运行!
当cpu资源出现短缺的时候,mysql现象又出现了!
现在的解决方案:
1。升级服务器:硬件上提高cpu的处理能力,现采用1.4G主频!
采用redhat7.1
2。三大服务器的优化处理:php+apache+mysql
这一点请教斑竹大人,有劳了!可以提供详实的优化apache和mysql的具体方案么,谢谢!
为了彻底解决这个问题,我在这里重申这个问题,希望斑竹大人不介意!
现在我站点出现以下问题:
1.一般正常情况下:
[root@x-mud bin]# ps -e|grep mysqld
10479 ? 00:00:00 safe_mysqld
10492 ? 00:00:01 mysqld
10494 ? 00:00:01 mysqld
10495 ? 00:20:16 mysqld
27201 ? 00:00:00 mysqld <defunct>
27202 ? 00:00:00 mysqld
//以上为mysql线程情况
2.一般正常情况下:
[root@x-mud bin]# top (查看服务器线程运行情况)
2:16pm up 15:59, 1 user, load average: 2.40, 1.49, 1.78
78 processes: 67 sleeping, 8 running, 0 zombie, 3 stopped
CPU states: 65.1% user, 14.8% system, 0.0% nice, 35.0% idle
Mem: 387196K av, 359212K used, 27984K free, 74200K shrd, 29744K buff
Swap: 1052216K av, 464K used, 1051752K free 232308K cached
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
27663 root 8 0 7172 7172 1916 S 18.6 1.8 0:01 mysqld
27662 root 20 0 25924 25M 616 R 17.8 6.6 0:01 mysqldump
24268 nobody 2 0 3428 3428 2212 S 16.0 0.8 0:25 httpd
27643 nobody 20 0 3356 3356 2144 R 11.8 0.8 0:00 httpd
27646 nobody 1 0 3268 3268 2156 S 8.7 0.8 0:00 httpd
10495 root 9 0 7172 7172 1916 S 6.5 1.8 20:54 mysqld
27667 root 17 0 7172 7172 1916 S 4.7 1.8 0:00 mysqld
27668 root 19 0 7172 7172 1916 R 3.9 1.8 0:00 mysqld
27666 root 10 0 7172 7172 1916 S 3.5 1.8 0:00 mysqld
27669 root 19 0 7172 7172 1916 R 1.9 1.8 0:00 mysqld
24277 nobody 3 0 3592 3592 2248 S 0.9 0.9 0:23 httpd
27481 nobody 2 0 3336 3336 2184 R 0.7 0.8 0:03 httpd
27600 root 1 0 1036 1036 816 R 0.7 0.2 0:00 top
27651 nobody 1 0 2088 2088 1976 S 0.3 0.5 0:00 httpd
24278 nobody 1 0 3412 3412 2228 S 0.1 0.8 0:18 httpd
27475 nobody 0 0 3356 3356 2172 S 0.1 0.8 0:01 httpd
27549 nobody 0 0 3376 3376 2192 S 0.1 0.8 0:01 httpd
//重点看看这一行信息:(cpu运行时资源分配状况)
78 processes: 67 sleeping, 8 running, 0 zombie, 3 stopped
CPU states: 85.1% user, 14.8% system, 0.0% nice, 0.0% idle
以下为出现mysql线程问题的服务器运行状况:
1。root@x-mud bin]# top (查看服务器线程运行情况)
2:16pm up 15:59, 1 user, load average: 2.40, 1.49, 1.78
178 processes: 167 sleeping, 8 running, 0 zombie, 3 stopped
CPU states: 99.1% user, 14.8% system, 0.0% nice, 0.0% idle
Mem: 387196K av, 359212K used, 27984K free, 74200K shrd, 29744K buff
Swap: 1052216K av, 464K used, 1051752K free 232308K cached
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
27663 root 8 0 7172 7172 1916 S 18.6 1.8 0:01 mysqld
27663 root 8 0 7172 7172 1916 S 18.6 1.8 0:01 mysqld
27663 root 8 0 7172 7172 1916 S 18.6 1.8 0:01 mysqld
27663 root 8 0 7172 7172 1916 S 18.6 1.8 0:01 mysqld
27663 root 8 0 7172 7172 1916 S 18.6 1.8 0:01 mysqld
.....................
27663 root 8 0 7172 7172 1916 S 18.6 1.8 0:01 mysqld
27663 root 8 0 7172 7172 1916 S 18.6 1.8 0:01 mysqld
27663 root 8 0 7172 7172 1916 S 18.6 1.8 0:01 mysqld
27663 root 8 0 7172 7172 1916 S 18.6 1.8 0:01 mysqld
27663 root 8 0 7172 7172 1916 S 18.6 1.8 0:01 mysqld
2.[root@x-mud bin]# ps -e|grep mysqld
10479 ? 00:00:00 safe_mysqld
10492 ? 00:00:01 mysqld
10494 ? 00:00:01 mysqld
10495 ? 00:20:16 mysqld
27201 ? 00:00:00 mysqld <defunct>
27202 ? 00:00:00 mysqld
..........
10479 ? 00:00:00 safe_mysqld
10492 ? 00:00:01 mysqld
10494 ? 00:00:01 mysqld
10495 ? 00:20:16 mysqld
27201 ? 00:00:00 mysqld <defunct>
27202 ? 00:00:00 mysqld
3.[root@x-mud bin]# ps -e|grep httpd
28054 ? 00:00:01 httpd
28136 ? 00:00:02 httpd
28215 ? 00:00:00 httpd
28219 ? 00:00:00 httpd
28229 ? 00:00:00 httpd
28280 ? 00:00:00 httpd
28281 ? 00:00:00 httpd
28282 ? 00:00:00 httpd
28283 ? 00:00:00 httpd
28284 ? 00:00:00 httpd
28286 ? 00:00:00 httpd
28288 ? 00:00:00 httpd
28289 ? 00:00:00 httpd
28291 ? 00:00:00 httpd
28294 ? 00:00:00 httpd
28297 ? 00:00:00 httpd
28298 ? 00:00:00 httpd
28304 ? 00:00:00 httpd
28306 ? 00:00:00 httpd
28310 ? 00:00:00 httpd
28311 ? 00:00:00 httpd
28330 ? 00:00:00 httpd
28334 ? 00:00:00 httpd
.......
28054 ? 00:00:01 httpd
28136 ? 00:00:02 httpd
28215 ? 00:00:00 httpd
28219 ? 00:00:00 httpd
28229 ? 00:00:00 httpd
28280 ? 00:00:00 httpd
28281 ? 00:00:00 httpd
28282 ? 00:00:00 httpd
28283 ? 00:00:00 httpd
28284 ? 00:00:00 httpd
28286 ? 00:00:00 httpd
28288 ? 00:00:00 httpd
28289 ? 00:00:00 httpd
28291 ? 00:00:00 httpd
28294 ? 00:00:00 httpd
28297 ? 00:00:00 httpd
28298 ? 00:00:00 httpd
28304 ? 00:00:00 httpd
28306 ? 00:00:00 httpd
28310 ? 00:00:00 httpd
28311 ? 00:00:00 httpd
28330 ? 00:00:00 httpd
28334 ? 00:00:00 httpd
///重点看看这两行
178 processes: 167 sleeping, 8 running, 0 zombie, 3 stopped
CPU states: 99.1% user, 14.8% system, 0.0% nice, 0.0% idle
针对上述问题:
我综合一下:
1。重点参数分析:
78 processes: 67 sleeping, 8 running, 0 zombie, 3 stopped
CPU states: 65.1% user, 14.8% system, 0.0% nice, 35.0% idle
178 processes: 167 sleeping, 8 running, 0 zombie, 3 stopped
CPU states: 99.1% user, 14.8% system, 0.0% nice, 0.0% idle
当访问用户请求过多的时候,httpd线程也随即增加,cpu被占用的资源也随即上升,到达一定程度时,cpu资源被耗费掉,httpd线程滞留,httpd线程所触发的mysql线程也跟着滞留,没有正常中断,所以用top指令查看的时候,看到一大堆mysql线程!关闭apache服务,httpd线程全部消失,mysql线程也消失,重新启动apache服务,外界访问正常访问,httpd线程正常运行,mysql线程也正常运行!
当cpu资源出现短缺的时候,mysql现象又出现了!
现在的解决方案:
1。升级服务器:硬件上提高cpu的处理能力,现采用1.4G主频!
采用redhat7.1
2。三大服务器的优化处理:php+apache+mysql
这一点请教斑竹大人,有劳了!可以提供详实的优化apache和mysql的具体方案么,谢谢!