首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大型机床上的MySQL控制

大型机床上的MySQL控制
EN

Server Fault用户
提问于 2010-05-21 18:52:59
回答 2查看 1.1K关注 0票数 1

我们有一个Windows2003EnterpriseEdition服务器(64位),只运行MySQL 5.1.45 64位.它在RAID 10中有16G的RAM和10T的硬盘空间。从mysqld (85-100%的CPU利用率)来看,我们的性能非常糟糕。我们运行的是一台性能更好的较小的机器,所以我假设我们的my.ini文件对我们当前的机器不正确。my.ini文件如下:

代码语言:javascript
复制
[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?我知道我们可以优化一些查询,等等,但是它在一台较小的机器上运行得很好,所以我很确定这是配置。

提前感谢您的帮助。

EN

回答 2

Server Fault用户

回答已采纳

发布于 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_缓冲器_池子_大小/

票数 1
EN

Server Fault用户

发布于 2010-05-23 01:05:09

您应该增加read_buffer_size和sort_buffer_size。对于拥有16 2MB内存的机器,没有理由将它们设置为2MB的可怜大小。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/144206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档