:: |
作者 |
留言 |
qqq2w 半仙
注册时间: 2005-03-23 文章: 16
|
发表于: Tue 2006-01-17 21:20:21 发表主题: 如何解决MYSQL硬盘速度瓶颈的问题 |
|
|
我有一台mysql数据库服务器,具体情况 1.数据库的容量15G,数据库分布三快硬盘上,没有做raid 2.安装的环境是FB6+MYSQL4.1 ,至强2.8G,2G内存,2*SATA + 1*IDE迈拓硬盘 3.现在cpu使用率10~20% 4.感觉硬盘是一个瓶颈, 请大家提提建议,能进行那些优化
下面是硬盘的几个状态,
代码: |
/0 /1 /2 /3 /4 /5 /6 /7 /8 /9 /10 Load Average ||||
/0 /10 /20 /30 /40 /50 /60 /70 /80 /90 /100 cpu user| nice|XXXX system|XX interrupt| idle|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
/0 /10 /20 /30 /40 /50 /60 /70 /80 /90 /100 ad0 MB/s tps|XXXXXXXXXXXXXXXXXX ad2 MB/s tps|XXXXXX ad3 MB/sX tps|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX177.17
|
代码: |
/0 /1 /2 /3 /4 /5 /6 /7 /8 /9 /10 Load Average |
/0 /10 /20 /30 /40 /50 /60 /70 /80 /90 /100 cpu user| nice|XXXXXX system|XXX interrupt| idle|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
/0 /10 /20 /30 /40 /50 /60 /70 /80 /90 /100 ad0 MB/s tps|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ad2 MB/s tps|XXXXXXXXXXXX ad3 MB/s tps|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX121.18
|
代码: |
/0 /1 /2 /3 /4 /5 /6 /7 /8 /9 /10 Load Average |
/0 /10 /20 /30 /40 /50 /60 /70 /80 /90 /100 cpu user| nice|XXXXX system|X interrupt| idle|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
/0 /10 /20 /30 /40 /50 /60 /70 /80 /90 /100 ad0 MB/sX tps|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX132.38 ad2 MB/s tps|XXXXXXXXXXXXXXXXXXXXXX ad3 MB/s tps|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
| | |
|
|
|
cfeng 道士
注册时间: 2003-11-10 文章: 629
|
发表于: Tue 2006-01-17 22:05:44 发表主题: |
|
|
1、加内存,将更多的内存在 my.cnf 中分配给 MYSQL 使用。 2、检查 SQL 语句,是否有没有必要的操作。 3、换 SCSI 硬盘
` _________________ QQ :17866295 MSN:zhcharles@hotmail.com http://blog.yuechuan.com | |
|
|
|
qqq2w 半仙
注册时间: 2005-03-23 文章: 16
|
发表于: Tue 2006-01-17 23:12:51 发表主题: |
|
|
cfeng 写到: |
1、加内存,将更多的内存在 my.cnf 中分配给 MYSQL 使用。 2、检查 SQL 语句,是否有没有必要的操作。 3、换 SCSI 硬盘
|
1. 2G内存没有用完,比较空闲 2. SQL语句也做了优化了,slow的语句都做了优化, 只要搜索引擎一来,CPU使用100%,真实夸张,我一次我检测到搜索引擎10分钟内取走8w用户的信息,cpu就是100%, 3200条查询全部进入slow.log
3.换 SCSI 硬盘到底速度怎么样,我不能确定, 看到论坛上说,scsi的速度比如IDE, 这个我很犹豫??!!! | |
|
|
|
cfeng 道士
注册时间: 2003-11-10 文章: 629
|
发表于: Thu 2006-01-19 08:57:37 发表主题: |
|
|
qqq2w 写到: |
cfeng 写到: |
1、加内存,将更多的内存在 my.cnf 中分配给 MYSQL 使用。 2、检查 SQL 语句,是否有没有必要的操作。 3、换 SCSI 硬盘
|
1. 2G内存没有用完,比较空闲 2. SQL语句也做了优化了,slow的语句都做了优化, 只要搜索引擎一来,CPU使用100%,真实夸张,我一次我检测到搜索引擎10分钟内取走8w用户的信息,cpu就是100%, 3200条查询全部进入slow.log
3.换 SCSI 硬盘到底速度怎么样,我不能确定, 看到论坛上说,scsi的速度比如IDE, 这个我很犹豫??!!! |
这样的数据规模竟然连 2G 内存都没用,要不你没做索引,要不就是分给 MYSQL 使用的内存非常少。。
3200 多条 SLOW 的查询?
减少一些 CONNECTION。。
SCSI 的速度和 IDE 怎么可能是“比如”呢? 就算是最新的 SATA-II 都与 SCSI 有明显的差异,特别是高负载下。。。
INTEL 网卡和 REALTEK 网卡在传送单一 10K 文件时,差异并不明显的。。但不表示 INTEL 网卡的速度比如 REALTEK。。。
` _________________ QQ :17866295 MSN:zhcharles@hotmail.com http://blog.yuechuan.com | |
|
|
|
geel 道童
注册时间: 2003-09-09 文章: 475
|
发表于: Thu 2006-01-19 09:31:27 发表主题: |
|
|
我这更倒霉,也不知道怎么搞得,spider都是同一时间来的。只要服务器慢下来,看吧,baidu,yahoo,google,msn,sina iask(这个也爬行阿,上个月才知道),还有几个不知名的,全来了
这些一块来,简直要命。真是不知道怎么让他们错开时间来,别一起来 _________________ ,工作之余也去轻松一下吧! | |
|
|
|
yarshure 精神病
注册时间: 2002-06-11 文章: 1758 来自: ShangHai
|
发表于: Thu 2006-01-19 10:26:29 发表主题: |
|
|
不行就deny部分spider,或者按天开放。
geel 写到: |
我这更倒霉,也不知道怎么搞得,spider都是同一时间来的。只要服务器慢下来,看吧,baidu,yahoo,google,msn,sina iask(这个也爬行阿,上个月才知道),还有几个不知名的,全来了
这些一块来,简直要命。真是不知道怎么让他们错开时间来,别一起来 | _________________ msn or gtalk:yarshure#gmail.com | |
|
|
|
geel 道童
注册时间: 2003-09-09 文章: 475
|
发表于: Thu 2006-01-19 10:30:58 发表主题: |
|
|
yarshure 写到: |
不行就deny部分spider,或者按天开放。 |
不敢啊。去年换机器停了小半天,结果google就给我删了10多万条索引…… _________________ ,工作之余也去轻松一下吧! | |
|
|
|
cnbsd 精神病
注册时间: 2002-07-12 文章: 135 来自: Shanghai
|
发表于: Thu 2006-01-19 11:05:39 发表主题: |
|
|
禁止innodb看看,那个东西是个祸害。 | |
|
|
|
cfeng 道士
注册时间: 2003-11-10 文章: 629
|
发表于: Thu 2006-01-19 13:51:59 发表主题: |
|
|
geel 写到: |
我这更倒霉,也不知道怎么搞得,spider都是同一时间来的。只要服务器慢下来,看吧,baidu,yahoo,google,msn,sina iask(这个也爬行阿,上个月才知道),还有几个不知名的,全来了
这些一块来,简直要命。真是不知道怎么让他们错开时间来,别一起来 |
我问过车东,他说可以在 robots.txt 文件里面设置搜索的时间间隔,不过我是直接 Disallow /,即全部禁止。有些搜索引擎还不一定按 robots.txt 的指未来做,所以我又在 APACHE 里用 user-agent 禁止了所有的 spider...
` _________________ QQ :17866295 MSN:zhcharles@hotmail.com http://blog.yuechuan.com | |
|
|
|
qqq2w 半仙
注册时间: 2005-03-23 文章: 16
|
发表于: Thu 2006-01-19 14:01:26 发表主题: |
|
|
cnbsd 写到: |
禁止innodb看看,那个东西是个祸害。 | 这个禁止了 | |
|
|
|
qqq2w 半仙
注册时间: 2005-03-23 文章: 16
|
发表于: Thu 2006-01-19 14:07:40 发表主题: |
|
|
这是我的mysql配置,2个内存,数据库15g,大家看看有什么地方可以优化的,谢谢
代码: |
# The following options will be passed to all MySQL clients [client] #password = your_password port = 3306 socket = /tmp/mysql.sock # The MySQL server [mysqld] port = 3306 socket = /tmp/mysql.sock skip-locking back_log = 500 key_buffer = 512M max_allowed_packet = 8M table_cache = 2048 thread_cache = 512
join_buffer_size = 128M sort_buffer_size = 128M read_buffer_size = 128M max_connections = 512 read_rnd_buffer_size = 32M myisam_sort_buffer_size = 128M interactive_timeout=120
query_cache_size = 128M # Try number of CPU's*2 for thread_concurrency thread_concurrency = 8 max_heap_table_size= 1024M tmp_table_size = 512M myisam_sort_buffer_size= 256M long_query_time = 1 wait_timeout = 5 connect_timeout = 5 max_connect_errors = 30000
#skip-networking
# Replication Master Server (default) # binary logging is required for replication #log-bin skip-innodb skip-bdb # required unique id between 1 and 2^32 - 1 # defaults to 1 if master-host is not set # but will not function as a master if omitted server-id = 1
# required unique id between 2 and 2^32 - 1 # (and different from the master) # defaults to 2 if master-host is set # but will not function as a slave if omitted #server-id = 2 # # The replication master for this slave - required #master-host = # # The username the slave will use for authentication when connecting # to the master - required #master-user = # # The password the slave will authenticate with when connecting to # the master - required #master-password = # # The port the master is listening on. # optional - defaults to 3306 #master-port = # # binary logging - not required for slaves, but recommended #log-bin
# Point the following paths to different dedicated disks #tmpdir = /tmp/ #log-update = /path-to-dedicated-directory/hostname
# Uncomment the following if you are using BDB tables #bdb_cache_size = 384M #bdb_max_lock = 100000
# Uncomment the following if you are using InnoDB tables #innodb_data_home_dir = /var/db/mysql/ #innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend #innodb_log_group_home_dir = /var/db/mysql/ #innodb_log_arch_dir = /var/db/mysql/ # You can set .._buffer_pool_size up to 50 - 80 % # of RAM but beware of setting memory usage too high #innodb_buffer_pool_size = 384M #innodb_additional_mem_pool_size = 20M # Set .._log_file_size to 25 % of buffer pool size #innodb_log_file_size = 100M #innodb_log_buffer_size = 8M #innodb_flush_log_at_trx_commit = 1 #innodb_lock_wait_timeout = 50
[mysqldump] quick max_allowed_packet = 16M
[mysql] no-auto-rehash # Remove the next comment character if you are not familiar with SQL #safe-updates
[isamchk] key_buffer = 256M sort_buffer_size = 256M read_buffer = 2M write_buffer = 2M
[myisamchk] key_buffer = 256M sort_buffer_size = 256M read_buffer = 2M write_buffer = 2M
[mysqlhotcopy] interactive-timeout | | |
|
|
|
geel 道童
注册时间: 2003-09-09 文章: 475
|
发表于: Thu 2006-01-19 15:32:36 发表主题: |
|
|
cfeng 写到: |
我问过车东,他说可以在 robots.txt 文件里面设置搜索的时间间隔,不过我是直接 Disallow /,即全部禁止。有些搜索引擎还不一定按 robots.txt 的指未来做,所以我又在 APACHE 里用 user-agent 禁止了所有的 spider...` |
我去看看robot协议。小spider就不管了,那几个大的怎么也要遵守一下吧。也不知道这帮spider用的什么线路,那速度,简直跟ddos一样 _________________ ,工作之余也去轻松一下吧! | |
|
|
|
cfeng 道士
注册时间: 2003-11-10 文章: 629
|
发表于: Thu 2006-01-19 15:37:46 发表主题: |
|
|
qqq2w 写到: |
这是我的mysql配置,2个内存,数据库15g,大家看看有什么地方可以优化的,谢谢
|
这样看来,你的配置也不会太差了。。 试试换 SCSI 吧,这样会有些提升,但主要问题可能还是在连接数上。
spider 的确是个麻烦事,为了可以更容易地被搜索引擎搜索到,关掉也不是办法。衡量一下,如果是平时用户访问的时候慢,可以将原来 my.cnf 里面的 128M 改为 256M,key_buffer_size 升到 1G。但如果是 spider 大量访问造成慢,那么有可能是数据库连接数的问题了。这样增加 maxconnection 可能会更慢。减少 maxconnection,并尽量想办法做连接池。。
尽可能的情况下,还是学习一下 robots.txt 的设定,让 spider 访问的时间间隔长一点。
一般像 google, yahoo 等搜索引擎都会比较遵守“游戏规则”。
` _________________ QQ :17866295 MSN:zhcharles@hotmail.com http://blog.yuechuan.com | |
|
|
|
llzqq 道童
注册时间: 2004-07-16 文章: 247
|
发表于: Thu 2006-01-19 21:14:47 发表主题: |
|
|
可以考虑关掉日志。几千条日志记录短时间内写到磁盘也是不小的负担。 _________________ 个人业务:
1. 域名策略解析服务 2. 企业mail系统解决方案 3. unix类os网络应用方案 4. unix类os远程系统维护
msn: mail: | |
|
|
|
qqq2w 半仙
注册时间: 2005-03-23 文章: 16
|
发表于: Tue 2006-01-24 23:25:45 发表主题: |
|
|
日志是关闭的
看看我的my.cnf有什么地方改进的 | |
|
|
|
benjiam 半仙
注册时间: 2002-07-01 文章: 54
|
发表于: Wed 2006-01-25 10:31:11 发表主题: |
|
|
1. 2G内存没有用完,比较空闲
top 看的?
2. SQL语句也做了优化了,slow的语句都做了优化, 只要搜索引擎一来,CPU使用100%,真实夸张,我一次我检测到搜索引擎10分钟内取走8w用户的信息,cpu就是100%, 3200条查询全部进入slow.log
这个你怎么看的? 什么服务器搜索引擎这么喜欢看? | |
|
|
|
knightmare 半仙
注册时间: 2006-01-28 文章: 2
|
发表于: Sat 2006-01-28 04:25:48 发表主题: |
|
|
看看你的show processlist; | |