Chinaunix首页 | 论坛 | 博客
  • 博客访问: 491900
  • 博文数量: 100
  • 博客积分: 7010
  • 博客等级: 少将
  • 技术积分: 995
  • 用 户 组: 普通用户
  • 注册时间: 2005-04-22 15:44
文章分类

全部博文(100)

文章存档

2006年(90)

2005年(10)

我的朋友

分类: Mysql/postgreSQL

2006-02-09 10:38:52



 
发表新文章   回复文章     ->
::  
作者 留言
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
  
 
阅览会员资料 发送站内信件 发送电子邮件 MSN Messenger  
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
  
 
阅览会员资料 发送站内信件 发送电子邮件 MSN Messenger  
geel
道童


注册时间: 2003-09-09
文章: 475

文章发表于: Thu 2006-01-19 09:31:27    发表主题: 引用并回复

我这更倒霉,也不知道怎么搞得,spider都是同一时间来的。只要服务器慢下来,看吧,baidu,yahoo,google,msn,sina iask(这个也爬行阿,上个月才知道),还有几个不知名的,全来了

这些一块来,简直要命。真是不知道怎么让他们错开时间来,别一起来

_________________

,工作之余也去轻松一下吧!
阅览会员资料 发送站内信件 浏览发表者的主页 MSN Messenger  
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多万条索引……

_________________

,工作之余也去轻松一下吧!
阅览会员资料 发送站内信件 浏览发表者的主页 MSN Messenger  
cnbsd
精神病


注册时间: 2002-07-12
文章: 135
来自: Shanghai

文章发表于: Thu 2006-01-19 11:05:39    发表主题: 引用并回复

禁止innodb看看,那个东西是个祸害。
阅览会员资料 发送站内信件 MSN Messenger  
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
  
 
阅览会员资料 发送站内信件 发送电子邮件 MSN Messenger  
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一样

_________________

,工作之余也去轻松一下吧!
阅览会员资料 发送站内信件 浏览发表者的主页 MSN Messenger  
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
  
 
阅览会员资料 发送站内信件 发送电子邮件 MSN Messenger  
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;
阅读(1740) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~