公司的服务器是1G的内存,CPU是 intel(R) Xeon(TM) CPU3.20GH ,上面放着两三个PHP站,数据库用的MYSQL,但是都不会配置,以前没有什么问题,后来网站有点儿访问量后就越来越卡了,有时打开页面,吃完饭回来,还没打开。
肯求高手能帮我配置一下my.ini
(是不是这个文件的配置有问题才使网站打开很慢,我都不知道...)真的肯求高手赐教,最好别复制网上的一堆文章来应付我这个菜鸟,网上搜了半天,全是转来转去的几篇同样的文章,看晕了。如果能解决问题,我赠送1G的全能空间!我的MSN是[email protected]下面是我的my.ini的内容
port=3306
default-character-set=latin1
port=3306
default-character-set=latin1
default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=120
query_cache_size=32M
table_cache=256
tmp_table_size=9M
thread_cache_size=32
myisam_max_sort_file_size=100G
myisam_max_extra_sort_file_size=100G
myisam_sort_buffer_size=64M
key_buffer_size=128M
read_buffer_size=1M
read_rnd_buffer_size=512K
sort_buffer_size=1M
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=18M
innodb_log_file_size=10M
innodb_thread_concurrency=8

解决方案 »

  1.   

    简直就乱了!!!myisam_max_sort_file_size=100G
    myisam_max_extra_sort_file_size=100G 这两个100G?你的表数据有多少?
      

  2.   

    楼上的大哥,你说的什么表数据我什么也不懂啊,我只知道网站里有会员四万,文章几万,能不能帮我改改现在的my.ini,
      

  3.   

    针对你的服务器的my.ini配置建议:port=3306 
    default-character-set=latin1 
    default-storage-engine=INNODB 
    sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" max_connections=120 
    query_cache_size=32M #缓存数据表数量,设置这个参数可以参见系统状态中的 open_tables(表示当前打开的数据表总数) 和 opened_tables(表示所有打开的数据表总数)
    table_cache=256 #临时表的大小
    tmp_table_size=12M #缓存可重用的线程数
    thread_cache_size = 64myisam_max_sort_file_size=100G 
    myisam_max_extra_sort_file_size=100G 
    myisam_sort_buffer_size=64M#这对MyISAM表来说非常重要。如果只是使用MyISAM表,可以把它设置为可用内存的 30-40%。合理的值取决于索引大小、数据量以及负载 -- #记住,MyISAM表会使用操作系统的缓存来缓存数据,因此需要留出部分内存给它们,很多情况下数据比索引大多了。
    key_buffer_size=128M read_buffer_size=1M 
    read_rnd_buffer_size=512K 
    sort_buffer_size=1M #这对innodb表来说非常重要
    innodb_buffer_pool_size = 256M#这取决于你需要的回复速度.128M这个数值是适当的恢复时间和良好性能之间的一个好的平衡.
    innodb_log_file_size = 128M#大多数情况4M足够,除非正将很大的blob数据导入到Innodb中可以增加一点.
    innodb_log_buffer_size=4M #这个值取决于你的程序,可能高或者低.8是代表起始值.
    innodb_thread_concurrency=8 innodb_additional_mem_pool_size=100M #如果你不是很关心ACID,可以容许在系统完全crash的情况下丢失最后一两秒的事务,那么可以设置这个值.它可以极大的提高"短"的写事务的效率.
    innodb_flush_log_at_trx_commit=2 
    注意:
     很多情况需要具体情况具体分析
     1>如果Key_reads太大,则应该把my.cnf中Key_buffer_size变大,保持Key_reads/Key_read_requests至少1/100以上,越小越好。
     2>如果Qcache_lowmem_prunes很大,就要增加Query_cache_size的值。
      

  4.   

    高手啊
    楼主最好还是了解些mysql的基本知识,业务应用的特性,估计楼主的DB是InnoDB的引擎,如果基本应用都在InnoDB的引擎的表。
    max_connections=300                      --web应用这个有点少,改成300
    innodb_additional_mem_pool_size=8M       --大点好 2M有点少 
    innodb_flush_log_at_trx_commit=2         --每秒一次,把事务的log刷到log file
    innodb_log_buffer_size=4M                --默认值太低
    innodb_buffer_pool_size=300M              --这个是内存中放data page的大小,如果不会抢掉应用程序的内存,就多给点。
    你公司的服务器跑这么多应用,最好加到4G内存。