从我看到的现象来看,机器速度慢主要是CPU在等待IO操作,这样的情况下主机的CPU性能还没有得到发挥就到达了瓶颈.因此个人认为要考虑的不是mysql,而是另外几个问题:
1.磁盘性能是否太低?这可以用复制大文件的方式来检查,如果得到的性能指标达不到你的期望,那就要检查一下硬件是否存在问题,考虑能否做些调整比如使用raid0或更换更快的存储设备;
2.是否有可能减少不必要的IO?这就要分析IO产生的原因:是内存数据的扇入扇出?是mysql读取和写入的操作?如果是前者,就需要考虑调整内存分配比例或者增加内存;如果是后者,就得从mysql的数据分布,表的规模,索引,读写同/异步,以及应用逻辑等各方面来考虑了;
3.如果有条件,把应用的文件系统和mysql的数据库文件系统,甚至mysql中读写比较频繁的表分离到不同的硬盘上去,对性能是肯定有帮助的.
另:1G的内存为何要配10多G的SWAP?做为server,用swap比内存用得多的时候,性能恐怕已经低得让人忍不住直接重启了;另外内存的free似乎不少,mysql的内存使用率可以调大.
[ 本帖最后由 zhangjoto 于 2008-7-28 02:18 编辑 ] |