免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5522 | 回复: 11
打印 上一主题 下一主题

MySQL在超线程CPU的表现 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-19 15:54 |只看该作者 |倒序浏览
我用的是RHEL4,最近在用MySQL的时候,发现机器的CPU占用率都在50%左右。
附件中有截图

这样的表现正常吗?

[ 本帖最后由 胡胡 于 2007-4-19 15:56 编辑 ]

a.jpg (34.05 KB, 下载次数: 46)

cpu占用情况

cpu占用情况

论坛徽章:
0
2 [报告]
发表于 2007-04-19 17:10 |只看该作者
需要优化了...

论坛徽章:
0
3 [报告]
发表于 2007-04-20 12:15 |只看该作者
是服务器配置,还是SQL呢?
我换了一台单CPU的,占了100%
换了一台四个CPU的(其实是两个超线程CPU),结果是25%

是不是一个MySQL实例同时只能使用一个CPU?如果是这样,多CPU作用好象不大。

论坛徽章:
0
4 [报告]
发表于 2007-04-20 12:51 |只看该作者
你好像连mysql的版本都没说吧。
机器配置的优化是最起码的优化,但是效果未必是最明显的

论坛徽章:
0
5 [报告]
发表于 2007-04-20 16:15 |只看该作者
Hoho~~居然忘了,机器是512M内存,一个超线程的P4 2.8G CPU

[arlen@bi2dev ~]$ mysql -u root -p -e "show variables like 'version'"
Enter password:
+---------------+---------------------+
| Variable_name | Value               |
+---------------+---------------------+
| version       | 5.0.22-standard-log |
+---------------+---------------------+

my.cnf的mysqld段如下:
datadir         = /usr/mysql
port        = 3306
socket      = /usr/mysql/mysql.sock
skip-locking
key_buffer = 256M
max_allowed_packet = 1M
table_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
thread_concurrency = 4

character-set-server = gbk
collation-server = gbk_chinese_ci

log-bin=mysql-bin

server-id   = 1

innodb_data_home_dir = /usr/mysql/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /usr/mysql/
innodb_log_arch_dir = /usr/mysql/
innodb_buffer_pool_size = 256M
innodb_additional_mem_pool_size = 20M
innodb_log_file_size = 64M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

谢谢yejr! 看了imysql.cn上的文章,获益菲浅。

论坛徽章:
0
6 [报告]
发表于 2007-04-20 21:19 |只看该作者
服了u,512m内存都拿来当db服务器

论坛徽章:
0
7 [报告]
发表于 2007-04-20 22:40 |只看该作者
512M应该没问题吧,我只是自己用用而且,又不是线上的系统。

论坛徽章:
0
8 [报告]
发表于 2007-04-21 00:40 |只看该作者
CPU占用率全是由 MySQL 引起的吗? 你的表结构是什么样的?SQL语句是什么?表里的记录数多吗?

论坛徽章:
0
9 [报告]
发表于 2007-04-21 19:42 |只看该作者
建议关闭超线程功能。超线程功能会导致某些服务器程序无法充分使用CPU计算能力。(类似网络限速)

对于本身就支持多进程、线程 的服务器程序,需要的是真正的物理多核心/处理器 环境。

论坛徽章:
0
10 [报告]
发表于 2007-04-22 12:04 |只看该作者
换了一台真正双CPU的,2G内在的机器,现象是一样。确认都是由MySQL用掉的CPU,因为不执行SQL的时候CPU占用都基本是0%。
其实关心的不是SQL写得好不好,我甚至故意写得很糟糕,只是奇怪为什么它只用一个CPU,就象在那台真正双CPU的服务器测试一样,CPU的使用率就只有25%了(因为两个CPU都是超线程的)
我的理解是MySQL对一个SQL的处理只使用一个CPU资源。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP