免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: zcongwei
打印 上一主题 下一主题

急求,mysql 经常导致CPU使用率100%  关闭 [复制链接]

论坛徽章:
0
71 [报告]
发表于 2008-07-28 20:03 |只看该作者
原帖由 yueliangdao0608 于 2008-7-28 13:06 发表
开启一下慢查询,然后调整一下吧。



[root@localhost log]# mysqldumpslow -t 10 -a slow.log

Reading mysql slow query log from slow.log
Count: 1  Time=832.00s (832s)  Lock=6.00s (6s)  Rows=0.0 (0), szxnmysql[szxnmysql]@localhost
  SELECT t.*, f.name FROM cdb_threads t, cdb_forums f WHERE f.fid=t.fid AND f.fid not in (41) AND t.displayorder not in (-1,-2) AND t.closed NOT LIKE 'moved|%' AND t.replies !=0 AND t.dateline>1216601202 ORDER BY t.views DESC LIMIT 0, 10

Count: 1  Time=831.00s (831s)  Lock=8.00s (8s)  Rows=0.0 (0), szxnmysql[szxnmysql]@localhost
  SELECT t.*, f.name FROM cdb_threads t, cdb_forums f WHERE f.fid=t.fid AND f.fid not in (41) AND t.displayorder not in (-1,-2) AND t.closed NOT LIKE 'moved|%' AND t.replies !=0 AND t.dateline>1216601607 ORDER BY t.views DESC LIMIT 0, 10

Count: 1  Time=831.00s (831s)  Lock=5.00s (5s)  Rows=0.0 (0), szxnmysql[szxnmysql]@localhost
  SELECT t.*, f.name FROM cdb_threads t, cdb_forums f WHERE f.fid=t.fid AND f.fid not in (41) AND t.displayorder not in (-1,-2) AND t.closed NOT LIKE 'moved|%' AND t.replies !=0 AND t.dateline>1216600889 ORDER BY t.views DESC LIMIT 0, 10

Count: 1  Time=831.00s (831s)  Lock=4.00s (4s)  Rows=0.0 (0), szxnmysql[szxnmysql]@localhost
  SELECT t.*, f.name FROM cdb_threads t, cdb_forums f WHERE f.fid=t.fid AND f.fid not in (41) AND t.displayorder not in (-1,-2) AND t.closed NOT LIKE 'moved|%' AND t.replies !=0 AND t.dateline>1216600919 ORDER BY t.views DESC LIMIT 0, 10

Count: 1  Time=831.00s (831s)  Lock=8.00s (8s)  Rows=0.0 (0), szxnmysql[szxnmysql]@localhost
  SELECT t.*, f.name FROM cdb_threads t, cdb_forums f WHERE f.fid=t.fid AND f.fid not in (41) AND t.displayorder not in (-1,-2) AND t.closed NOT LIKE 'moved|%' AND t.replies !=0 AND t.dateline>1216601319 ORDER BY t.views DESC LIMIT 0, 10

Count: 1  Time=831.00s (831s)  Lock=7.00s (7s)  Rows=0.0 (0), szxnmysql[szxnmysql]@localhost
  SELECT t.*, f.name FROM cdb_threads t, cdb_forums f WHERE f.fid=t.fid AND f.fid not in (41) AND t.displayorder not in (-1,-2) AND t.closed NOT LIKE 'moved|%' AND t.replies !=0 AND t.dateline>1216601014 ORDER BY t.views DESC LIMIT 0, 10

Count: 1  Time=828.00s (828s)  Lock=4.00s (4s)  Rows=0.0 (0), szxnmysql[szxnmysql]@localhost
  SELECT t.*, f.name FROM cdb_threads t, cdb_forums f WHERE f.fid=t.fid AND f.fid not in (41) AND t.displayorder not in (-1,-2) AND t.closed NOT LIKE 'moved|%' AND t.replies !=0 AND t.dateline>1216601490 ORDER BY t.views DESC LIMIT 0, 10

Count: 1  Time=828.00s (828s)  Lock=7.00s (7s)  Rows=0.0 (0), szxnmysql[szxnmysql]@localhost
  SELECT t.*, f.name FROM cdb_threads t, cdb_forums f WHERE f.fid=t.fid AND f.fid not in (41) AND t.displayorder not in (-1,-2) AND t.closed NOT LIKE 'moved|%' AND t.replies !=0 AND t.dateline>1216601576 ORDER BY t.views DESC LIMIT 0, 10

Count: 1  Time=828.00s (828s)  Lock=5.00s (5s)  Rows=0.0 (0), szxnmysql[szxnmysql]@localhost
  SELECT t.*, f.name FROM cdb_threads t, cdb_forums f WHERE f.fid=t.fid AND f.fid not in (41) AND t.displayorder not in (-1,-2) AND t.closed NOT LIKE 'moved|%' AND t.replies !=0 AND t.dateline>1216601288 ORDER BY t.views DESC LIMIT 0, 10

Count: 1  Time=828.00s (828s)  Lock=7.00s (7s)  Rows=0.0 (0), szxnmysql[szxnmysql]@localhost
  SELECT t.*, f.name FROM cdb_threads t, cdb_forums f WHERE f.fid=t.fid AND f.fid not in (41) AND t.displayorder not in (-1,-2) AND t.closed NOT LIKE 'moved|%' AND t.replies !=0 AND t.dateline>1216600984 ORDER BY t.views DESC LIMIT 0, 10

[ 本帖最后由 zcongwei 于 2008-7-28 22:20 编辑 ]

论坛徽章:
0
72 [报告]
发表于 2008-07-28 20:06 |只看该作者
原帖由 枫影谁用了 于 2008-7-28 13:08 发表


SQL的优化空间不大了。

倒是我一开始没留意IO的问题。

这个的IO确实有问题。



嗯,似乎是~~

现在基本就只有一个纯净的论坛程序
前面提到的几个关键的经常会出问题的sql语句都去掉了
但通过iostat显示如下:
[root@localhost ~]# iostat
Linux 2.6.9-22.ELsmp (localhost.localdomain)    2008年07月28日

avg-cpu:  %user   %nice    %sys %iowait   %idle
           3.59    0.00    1.87   14.31   80.23

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
hdc              22.73       370.34       331.00  188346908  168337616
hdc1              0.01         0.01         0.00       3395         56
hdc2             14.67        60.56        56.80   30797594   28887176
hdc3             51.15       309.77       274.20  157540922  139450200


[root@localhost ~]# iostat -x
Linux 2.6.9-22.ELsmp (localhost.localdomain)    2008年07月28日

avg-cpu:  %user   %nice    %sys %iowait   %idle
           3.59    0.00    1.87   14.32   80.22

Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
hdc          5.91  37.07 18.55  4.19  370.34  330.61   185.17   165.30    30.82     1.01   17.39  10.54  23.96


通过top看到也是wa值时不时会升到30-50%

[ 本帖最后由 zcongwei 于 2008-7-28 20:18 编辑 ]

论坛徽章:
0
73 [报告]
发表于 2008-07-28 20:08 |只看该作者
原帖由 zhangjoto 于 2008-7-28 13:38 发表
让我猜测一下楼主的主机,大概是一台普通PC做服务器,只有一块本地硬盘,所有的东西(包括操作系统,mysql,应用等)都在这块硬盘上?
如果是这样的话,楼主的IO问题基本上没有多大的调整余地了,这方面唯一还可以看看的 ...



呃,不是一台普通pc. 是一台一般的1U服务器
托管在某一个城市的电信机房,哎,现在就一个论坛都搞得经常很慢

不过是只有一块IDE硬盘,确实如你所说所有的东西(包括操作系统,mysql,应用等)都在这块硬盘上

这样的话,没什么调整余地了么?

论坛徽章:
0
74 [报告]
发表于 2008-07-28 20:09 |只看该作者
原帖由 sunnyfun 于 2008-7-28 14:50 发表


先看看这个

去掉后执行的时间,有提升的话就改改。



不清楚为什么里面要有这么多not,如果不是很关键的信息的话,缓存一下数据,定时更新一下可能会好点。



这样啊?
我再试试

论坛徽章:
0
75 [报告]
发表于 2008-07-28 20:09 |只看该作者
原帖由 ruochen 于 2008-7-28 16:03 发表
Mem:    969608k total,   448192k used,   521416k free,      976k buffers
Swap: 11582856k total,   140068k used, 11442788k free,    36688k cached

内存的使用很奇怪



我现在想用fdisk重新把swap分区一下
不知是否可以

论坛徽章:
0
76 [报告]
发表于 2008-07-28 20:10 |只看该作者
原帖由 eugene_jin 于 2008-7-28 16:36 发表
我没看大家的回帖,,只看lZ贴出的参数信息:
| Handler_read_rnd_next             | 1582   

LZ看下这个参数信息就应该知道有多少读在等待。。。。

说明读写速度可能有点问题。。。。你比较下key_read ...



我看了一下key_read_request 和 key_read
show status
显示截取如下:
Key_blocks_unused                 | 215892   |
| Key_blocks_used                   | 16068    |
| Key_read_requests                 | 2879002  |
| Key_reads                         | 16355    |
| Key_write_requests                | 29112    |
| Key_writes                        | 27630    |
| Last_query_cost                   | 0.000000 |
| Max_used_connections              | 42       |
| Not_flushed_delayed_rows          | 0        |
| Open_files                        | 340      |
| Open_streams                      | 0        |
| Open_tables                       | 255      |
| Opened_tables                     | 0        |
| Prepared_stmt_count               | 0        |
| Qcache_free_blocks                | 3577     |
| Qcache_free_memory                | 20015144 |
| Qcache_hits                       | 52308    |
| Qcache_inserts                    | 110269   |
| Qcache_lowmem_prunes              | 0        |
| Qcache_not_cached                 | 3458     |
| Qcache_queries_in_cache           | 10324    |
| Qcache_total_blocks               | 24373    |
| Questions                         | 344153   |
| Rpl_status                        | NULL     |
| Select_full_join                  | 0        |
| Select_full_range_join            | 0        |
| Select_range                      | 0        |
| Select_range_check                | 0        |
| Select_scan                       | 1        |
| Slave_open_temp_tables            | 0        |
| Slave_retried_transactions        | 0        |
| Slave_running                     | OFF      |
| Slow_launch_threads               | 3        |
| Slow_queries                      | 0        |
| Sort_merge_passes                 | 0        |
| Sort_range                        | 0        |
| Sort_rows                         | 0        |
| Sort_scan                         | 0        |
| Table_locks_immediate             | 233037   |
| Table_locks_waited                | 1580     |
| Tc_log_max_pages_used             | 0        |
| Tc_log_page_size                  | 0        |
| Tc_log_page_waits                 | 0        |
| Threads_cached                    | 31       |
| Threads_connected                 | 1        |
| Threads_created                   | 43       |
| Threads_running                   | 1        |
| Uptime                            | 25808    |

论坛徽章:
0
77 [报告]
发表于 2008-07-28 20:12 |只看该作者
原帖由 枫影谁用了 于 2008-7-28 17:06 发表
天于读缓冲的解释:

读缓冲区(read_buffer_size)

理想情况下,索引提供了足够多的信息,可以只读入所需要的行。

但是有时候查询,需要读取表中大量数据。

要理解这种行为,需要知道运行了多少个 SE ...



我现在对这些设置是按照下面这样设的
[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
low-priority-updates
skip-locking
key_buffer = 256M
max_allowed_packet = 1M
table_cache = 256
sort_buffer_size = 8M
read_buffer_size = 8M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 32
query_cache_size= 32M
tmp_table_size=200M
#new config
query_cache_type= 1
skip-innodb
skip-bdb
join_buffer_size=512k
wait_timeout =120
back_log=100
interactive_timeout=120
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 4
set-variable = max_connections=500
long_query_time = 10
log-slow-queries = /usr/local/mysql/log/slow.log


不知道有些值会不会太高或者太低?

论坛徽章:
0
78 [报告]
发表于 2008-07-28 22:21 |只看该作者
原帖由 zcongwei 于 2008-7-28 20:08 发表



呃,不是一台普通pc. 是一台一般的1U服务器
托管在某一个城市的电信机房,哎,现在就一个论坛都搞得经常很慢

不过是只有一块IDE硬盘,确实如你所说所有的东西(包括操作系统,mysql,应用等)都在这块硬盘 ...


如果这样的话,提高IO性能基本是没有多大余地了,楼主还是走降低IO需求的方向,按各位牛人的提示把精力放在数据库优化和语句优化上(不知道你的应用有没有缩减数据规模的可能,也会有所帮助)吧.

论坛徽章:
0
79 [报告]
发表于 2008-07-28 23:03 |只看该作者
估计换个SCSI硬盘会有大改善

^_^

论坛徽章:
0
80 [报告]
发表于 2008-07-28 23:08 |只看该作者
原帖由 枫影谁用了 于 2008-7-28 17:06 发表
天于读缓冲的解释:

读缓冲区(read_buffer_size)

理想情况下,索引提供了足够多的信息,可以只读入所需要的行。

但是有时候查询,需要读取表中大量数据。

要理解这种行为,需要知道运行了多少个 SE ...



奇怪

mysql> SHOW STATUS LIKE "handler_read_rnd_next";
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| Handler_read_rnd_next | 0     |
+-----------------------+-------+
1 row in set (2.42 sec)

mysql> SHOW STATUS LIKE "com_select";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Com_select    | 1     |
+---------------+-------+
1 row in set (0.00 sec)

我输出handler_read_rnd_next 为0的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP