在调整参数设置后,再比较一下SHOW STATUS 和 SHOW VARIABLES的相关值,根据手册所述看看哪里还需要改进的!FLUSH_TIME最好不要设为非0,非0表示每隔flush_time秒钟所有的表将被关闭!一般不推荐这样!1G的内存,除去web server及其它的开销,给mysql的key_buffer 128MB应该不成问题吧?

解决方案 »

  1.   

    另:导致一个系统速度慢的因素是很多的!也许是用户访问量增大了,而导致为原来用户访问量基础上的性能改进无法显现!楼主系统中,该考虑的不仅仅是mysql,也有web server!对于性能的描述与确定,最好用统计数据来说明!其实这方面的工作对有经验的人来说,可以很快的定位及给出解决方案,但对于经验不足的人来说,需要慢慢摸索了~~~~~~,每步首要解决的就是如何去找出性能瓶颈!
      

  2.   

    看看安装目录下的四个示例my-huge.cnf
    my-large.cnf
    my-medium.cnf
    my-small.cnf
      

  3.   


    应该我非常 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,但我不认为这样合适。
      

  4.   


    shuixin13(犬犬(心帆)) :谢谢!我先参考一下。
      

  5.   


    看了供参考的几个配置文件才知道我的配置是多少畸形,但标准还是拿不定。我的比较慢的情况下
    opend_tables 是150左右,看来应该把table_cache设成他的两倍,也就是256.
      

  6.   

    每次慢下来的时候,只重启APACHE或MYSQL一个试试,看看是不是只有一个影响了性能,还是两个,呵呵
      

  7.   


    重启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