LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1110|回复: 3

mysql占用CPU很高,请高手指点!!

[复制链接]
发表于 2007-6-18 16:22:49 | 显示全部楼层 |阅读模式
平均同时在线人数在300人,数据库占用cpu很高。以下是top出的数据请高手指点!!谢谢!!
16:26:53  up 23 days, 12:24,  2 users,  load average: 33.36, 33.30, 27.42
180 processes: 169 sleeping, 11 running, 0 zombie, 0 stopped
CPU states:  cpu    user    nice  system    irq  softirq  iowait    idle
           total   82.6%    0.0%   13.0%   0.0%     0.0%    0.0%    4.1%
           cpu00   84.2%    0.0%   12.3%   0.1%     0.0%    0.0%    3.1%
           cpu01   83.8%    0.0%   13.9%   0.0%     0.0%    0.0%    2.1%
           cpu02   79.0%    0.0%   13.3%   0.0%     0.0%    0.1%    7.3%
           cpu03   83.2%    0.0%   12.5%   0.0%     0.3%    0.0%    3.7%
Mem:  3869608k av, 1633488k used, 2236120k free,       0k shrd,  148708k buff
                    598424k actv,  810164k in_d,    7340k in_c
Swap: 2096440k av,       0k used, 2096440k free                 1118412k cached

  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME CPU COMMAND
30150 mysql     16   0  122M 122M  2824 S     6.1  3.2   0:30   3 mysqld
32042 mysql     15   0  122M 122M  2824 S     5.2  3.2   0:02   0 mysqld
31770 mysql     15   0  122M 122M  2824 S     5.1  3.2   0:06   0 mysqld
31891 mysql     15   0  122M 122M  2824 S     4.9  3.2   0:02   1 mysqld
31962 mysql     15   0  122M 122M  2824 S     4.1  3.2   0:01   0 mysqld
32061 mysql     16   0  122M 122M  2824 R     3.9  3.2   0:01   1 mysqld
32158 mysql     16   0  122M 122M  2824 R     3.2  3.2   0:00   2 mysqld
31754 mysql     15   0  122M 122M  2824 S     3.0  3.2   0:02   0 mysqld
31010 mysql     15   0  122M 122M  2824 S     2.4  3.2   0:06   0 mysqld
31194 mysql     16   0  122M 122M  2824 S     2.3  3.2   0:05   3 mysqld
31755 mysql     15   0  122M 122M  2824 R     2.2  3.2   0:02   1 mysqld
31208 mysql     16   0  122M 122M  2824 S     2.1  3.2   0:05   0 mysqld
31357 mysql     15   0  122M 122M  2824 S     2.1  3.2   0:03   3 mysqld
31799 mysql     15   0  122M 122M  2824 S     2.1  3.2   0:02   0 mysqld
32160 mysql     16   0  122M 122M  2824 S     2.1  3.2   0:00   0 mysqld
32187 mysql     20   0  122M 122M  2824 R     2.0  3.2   0:00   3 mysqld
30357 mysql     16   0  122M 122M  2824 S     1.9  3.2   0:11   0 mysqld
31449 mysql     15   0  122M 122M  2824 S     1.8  3.2   0:03   3 mysqld
31261 mysql     15   0  122M 122M  2824 S     1.7  3.2   0:05   0 mysqld
31409 mysql     15   0  122M 122M  2824 S     1.7  3.2   0:04   3 mysqld
31672 mysql     16   0  122M 122M  2824 S     1.7  3.2   0:02   0 mysqld
29562 mysql     15   0  122M 122M  2824 S     1.6  3.2   0:14   1 mysqld
30749 mysql     16   0  122M 122M  2824 S     1.6  3.2   0:05   0 mysqld
31515 mysql     15   0  122M 122M  2824 R     1.6  3.2   0:03   1 mysqld
30986 mysql     15   0  122M 122M  2824 S     1.5  3.2   0:07   3 mysqld
31095 mysql     16   0  122M 122M  2824 S     1.5  3.2   0:05   0 mysqld
31239 mysql     16   0  122M 122M  2824 S     1.5  3.2   0:05   0 mysqld
30552 mysql     16   0  122M 122M  2824 S     1.4  3.2   0:10   0 mysqld
31330 mysql     16   0  122M 122M  2824 S     1.4  3.2   0:04   0 mysqld
31499 mysql     16   0  122M 122M  2824 S     1.3  3.2   0:03   3 mysqld
31662 mysql     15   0  122M 122M  2824 R     1.3  3.2   0:02   1 mysqld


我在贴上my.cnf的配置。[mysqld]
character-set-server = gb2312
collation-server = gb2312_chinese_ci
key_buffer = 384M
table_cache = 1024K
sort_buffer_size = 8M
read_buffer_size = 4M
max_connections = 10000
发表于 2007-6-19 05:54:12 | 显示全部楼层
如果是用现成的php应用包,把并发连接数改小点试试。如果是自己写的php,不排除sql写的不太高效的可能。
看看这里关于CPU的部分可能会有好处。它提到了如果表很大,而且查询中包含了比较费时的函数,比如正则表达式匹配等,可能CPU就会成为瓶颈:
http://dev.mysql.com/books/hpmysql-excerpts/ch06.html
回复 支持 反对

使用道具 举报

发表于 2007-6-20 14:11:45 | 显示全部楼层
通常都是一些又臭又长的SQL语句造成的。
把数据库停下来,修复一把。数据库损坏也会出现这种情况。
回复 支持 反对

使用道具 举报

发表于 2007-6-21 15:11:12 | 显示全部楼层
赶紧检查一下 表的索引情况,没有索引的赶紧加上.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表