我们有一个Windows2003EnterpriseEdition服务器(64位),只运行MySQL 5.1.45 64位.它在RAID 10中有16G的RAM和10T的硬盘空间。从mysqld (85-100%的CPU利用率)来看,我们的性能非常糟糕。我们运行的是一台性能更好的较小的机器,所以我假设我们的my.ini文件对我们当前的机器不正确。my.ini文件如下:
[client]
port=3306
[mysql]
default-character-set=latin1
[mysqld]
port=3306
basedir="D:/MySQL/"
datadir="D:/MySQL/data"
default-character-set=latin1
default-storage-engine=MYISAM
sql-mode=""
skip-innodb
skip-locking
max_allowed_packet = 1M
max_connections=800
myisam_max_sort_file_size=5G
myisam_sort_buffer_size=500M
table_open_cache = 512
table_cache=8000
tmp_table_size=30M
query_cache_size=50M
thread_cache_size=128
key_buffer_size=3072M
read_buffer_size=2M
read_rnd_buffer_size=16M
sort_buffer_size=2M
#replication settings (this is the master)
log-bin=log
server-id = 1有人发现这个装置有什么问题吗?对于一个拥有这么多RAM的机器来说,为什么mysqld会消耗这么多CPU?我知道我们可以优化一些查询,等等,但是它在一台较小的机器上运行得很好,所以我很确定这是配置。
提前感谢您的帮助。
发布于 2010-05-23 08:09:39
你在使用innodb或myisam表吗?如果您正在使用InnoDB,那么您应该设置InnoDB缓冲池大小。这将通过缓存RAM中的常见查询来提供帮助。作为例外,考虑到您有16 of的内存,您应该尝试设置MySQL以使用10-14GB的RAM来缓存常见的结果集和查询。
MySQL性能博客-获得更多信息:http://www.mysqlperformanceblog.com/2007/11/03/choosing-innodb_缓冲器_池子_大小/
发布于 2010-05-23 01:05:09
您应该增加read_buffer_size和sort_buffer_size。对于拥有16 2MB内存的机器,没有理由将它们设置为2MB的可怜大小。
https://serverfault.com/questions/144206
复制相似问题