还是MYSQL的性能问题,继续散分。 在调整参数设置后,再比较一下SHOW STATUS 和 SHOW VARIABLES的相关值,根据手册所述看看哪里还需要改进的!FLUSH_TIME最好不要设为非0,非0表示每隔flush_time秒钟所有的表将被关闭!一般不推荐这样!1G的内存,除去web server及其它的开销,给mysql的key_buffer 128MB应该不成问题吧? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 另:导致一个系统速度慢的因素是很多的!也许是用户访问量增大了,而导致为原来用户访问量基础上的性能改进无法显现!楼主系统中,该考虑的不仅仅是mysql,也有web server!对于性能的描述与确定,最好用统计数据来说明!其实这方面的工作对有经验的人来说,可以很快的定位及给出解决方案,但对于经验不足的人来说,需要慢慢摸索了~~~~~~,每步首要解决的就是如何去找出性能瓶颈! 看看安装目录下的四个示例my-huge.cnfmy-large.cnfmy-medium.cnfmy-small.cnf 应该我非常 lxf_1976(小木) 才对!我原来是会对MYSQL简单编程,但现在必须要学会了解改善其性能。这个过程到现在进行了几天,从这里学到了很多东西,一并再次表示感谢。废话不说了。我原来的key_buffer_size是默认的8M,我想我们是1G的,改成100M应该没问题,但慢的比原来还厉害,所以不得不又改到了15M。我发现这种配置对我们的服务器来说不合适,还是在不断调整。我们的back_log是50,默认是5,我不想是不是太大了?需要改小?确实是在不断摸索。我把STATUS进行了几次快照:主要数据对比如下: 参数 快的时候 慢的时候| Bytes_received | 5182609 |66661391| Bytes_sent | 28640108 |390686409| Connections | 7246 |101013| Created_tmp_disk_tables | 0 |7| Created_tmp_tables | 32 |162| Handler_read_first | 3 |8| Handler_read_key | 78560 |833813| Handler_read_next | 23578443 |318819055| Handler_read_prev | 0 |738537| Handler_read_rnd | 316875 |6193464| Handler_read_rnd_next | 89772341 |1048494746| Handler_update | 16415 |165804| Handler_write | 13274 |62539| Key_blocks_used | 5041 |28091| Key_read_requests | 1013225 |13975217| Key_reads | 5033 |27889| Key_write_requests | 1530 |29149| Key_writes | 1379 |27487| Max_used_connections | 169 |190 Open_tables | 200 |149| Open_files | 211 |152| Opened_tables | 275 |12381 Slow_queries | 49 |383| Sort_rows | 569113 |7811336 Table_locks_immediate | 47929 |642546| Table_locks_waited | 8175 |71028 | Threads_cached | 155 |35| Threads_created | 170 |191| Threads_connected | 15 |156| Threads_running | 7 |149每次慢下来的时候我RESART APACHE和MYSQL就好了。我们的这台服务器就跑这样的一个论坛。另外,APACHE配置文件中相应参数修改如下:MaxClients 250 #TimeOut 300TimeOut 200KeepAlive OFFMaxKeepAliveRequests 100#MaxRequestsPerChild 100MaxRequestsPerChild 300KeepAliveTimeout 15 #MinSpareServers 5 MinSpareServers 10#MaxSpareServers 20MaxSpareServers 15StartServers 8我记得有篇文章建议把MaxRequestsPerChild设成10000,但我不认为这样合适。 shuixin13(犬犬(心帆)) :谢谢!我先参考一下。 看了供参考的几个配置文件才知道我的配置是多少畸形,但标准还是拿不定。我的比较慢的情况下opend_tables 是150左右,看来应该把table_cache设成他的两倍,也就是256. 每次慢下来的时候,只重启APACHE或MYSQL一个试试,看看是不是只有一个影响了性能,还是两个,呵呵 重启MYSQL的效果要好一些。另外我多放参考写了个自己的新配置,等再慢下来的时候就换上。[mysqld]set-variable = table_cache=256set-variable = key_buffer=120Mset-variable = max_allowed_packet=80Kset-variable = record_buffer=100Kset-variable = thread_cache=8set-variable = thread_concurrency=8 请问怎么改字符集 MySQL时间格式转换 java连接将mysql问题 MySQL C API 中关于 select * 的疑问 数据 显示排名 mysql中为什么不能使用top *类似这种的大范围的查询? 关于主键插入语句的问题 MySql开发SDK那边可以下载,Window和Linux版本,只需要开发程序库和头文件即可,谢谢 求高人帮人,一MYSQL查询。 MySQL表里有学年和学期两列,根据当前时间填写当前两列的值,用函数能实现吗? 关于数据选择求助。 求 MySQL 好的备份策略
my-large.cnf
my-medium.cnf
my-small.cnf
应该我非常 lxf_1976(小木) 才对!我原来是会对MYSQL简单编程,但现在必须要学会了解改善其性能。这个过程到现在进行了几天,从这里学到了很多东西,一并再次表示感谢。废话不说了。我原来的key_buffer_size是默认的8M,我想我们是1G的,改成100M应该没问题,但慢的比原来还厉害,所以不得不又改到了15M。我发现这种配置对我们的服务器来说不合适,还是在不断调整。我们的back_log是50,默认是5,我不想是不是太大了?需要改小?确实是在不断摸索。我把STATUS进行了几次快照:
主要数据对比如下:
参数 快的时候 慢的时候
| Bytes_received | 5182609 |66661391
| Bytes_sent | 28640108 |390686409
| Connections | 7246 |101013
| Created_tmp_disk_tables | 0 |7
| Created_tmp_tables | 32 |162
| Handler_read_first | 3 |8
| Handler_read_key | 78560 |833813
| Handler_read_next | 23578443 |318819055
| Handler_read_prev | 0 |738537
| Handler_read_rnd | 316875 |6193464
| Handler_read_rnd_next | 89772341 |1048494746
| Handler_update | 16415 |165804
| Handler_write | 13274 |62539
| Key_blocks_used | 5041 |28091
| Key_read_requests | 1013225 |13975217
| Key_reads | 5033 |27889
| Key_write_requests | 1530 |29149
| Key_writes | 1379 |27487
| Max_used_connections | 169 |190
Open_tables | 200 |149
| Open_files | 211 |152
| Opened_tables | 275 |12381
Slow_queries | 49 |383
| Sort_rows | 569113 |7811336
Table_locks_immediate | 47929 |642546
| Table_locks_waited | 8175 |71028
| Threads_cached | 155 |35
| Threads_created | 170 |191
| Threads_connected | 15 |156
| Threads_running | 7 |149每次慢下来的时候我RESART APACHE和MYSQL就好了。我们的这台服务器就跑这样的一个论坛。另外,APACHE配置文件中相应参数修改如下:
MaxClients 250
#TimeOut 300
TimeOut 200
KeepAlive OFF
MaxKeepAliveRequests 100
#MaxRequestsPerChild 100
MaxRequestsPerChild 300
KeepAliveTimeout 15
#MinSpareServers 5
MinSpareServers 10
#MaxSpareServers 20
MaxSpareServers 15
StartServers 8我记得有篇文章建议把MaxRequestsPerChild设成10000,但我不认为这样合适。
shuixin13(犬犬(心帆)) :谢谢!我先参考一下。
看了供参考的几个配置文件才知道我的配置是多少畸形,但标准还是拿不定。我的比较慢的情况下
opend_tables 是150左右,看来应该把table_cache设成他的两倍,也就是256.
重启MYSQL的效果要好一些。另外我多放参考写了个自己的新配置,等再慢下来的时候就换上。[mysqld]
set-variable = table_cache=256
set-variable = key_buffer=120M
set-variable = max_allowed_packet=80K
set-variable = record_buffer=100K
set-variable = thread_cache=8
set-variable = thread_concurrency=8