维护web服务器差不多已经半年了,到现在发现自己还是很菜,无所谓,只要每一天都是在进步,就可以了。优化mysql服务器网上有很多教材,这里主要说道在文件系统的选择和io的调度上,关于io调度可以参考http://scoke.blog.51cto.com/769125/490546,有详细的说明,如果的单独的数据库服务器,可以考虑一下Deadline
对于文件系统的选择linux有很多优秀的文件系统,ext3,xfs,jfs,reiserfs等。ext4,btrfs等牛x的新文系系统
环境如下
一、Mysqlslap测试:
mysqlslap是mysql自带的一个测试工具,这里使用的是默认的my-huge.cnf,测试脚本如下:
#vi mysqlslap_benchmarks.sh
/opt/mysql/bin/mysqld_safe &
sleep 10
echo "-------------------------innodb test -----------------------"
/opt/mysql/bin/mysqlslap -u root -h localhost -c 10,50,100,200,400 -i 2 --engine=innodb --auto-generate-sql-load-type=mixed --number-of-queries=50000 --number-char-cols=5 --number-int-cols=5 --auto-generate-sql
echo "-------------------------myisam test -----------------------"
/opt/mysql/bin/mysqlslap -u root -h localhost -c 10,50,100,200,400 -i 2 --engine=myisam --auto-generate-sql-load-type=mixed --number-of-queries=50000 --number-char-cols=5 --number-int-cols=5 --auto-generate-sql
killall mysqld
重点参数:
-c 10,50,100,200,400:表示同时的client数量,可以考察在不同并发下的情况
-i 2:运行几次测试,多次取平均值会更准确,当然更耗时。
--number-of-queries=50000:query次数
其他具体使用方法请Google,这里就不一一列举了。
测试项 | 10 client(单位s) | 50 client | 100 client | 200 client | 400 client |
默认my-huge.cnf, XFS(nobarrier), deadline, innodb | 134.1 | 95.4 | 97.0 | 129.5 | 151.3 |
默认my-huge.cnf, XFS(nobarrier), cfq, innodb | 141.8 | 95.6 | 96.1 | 122.6 | 185.7 |
默认my-huge.cnf, XFS, deadline, innodb | 141.5 | 95.7 | 97.8 | 128.4 | 193.8 |
默认my-huge.cnf, JFS, deadline, innodb | 135.7 | 95.7 | 95.9 | 117.9 | 157.6 |
默认my-huge.cnf, JFS, cfq, innodb | 128.9 | 95.3 | 96.1 | 136.3 | 192.2 |
默认my-huge.cnf, XFS(nobarrier), deadline, myisam | 129.0 | 134.9 | 137.9 | 168.7 | 195.4 |
默认my-huge.cnf, XFS(nobarrier), cfq, myisam | 126.5 | 135.7 | 137.8 | 164.2 | 167.2 |
默认my-huge.cnf, XFS, deadline, myisam | 129.5 | 132.9 | 138.4 | 169.9 | 222.5 |
默认my-huge.cnf, JFS, deadline, myisam | 124.0 | 92.9 | 95.3 | 103.1 | 145.4 |
默认my-huge.cnf, JFS, cfq, myisam | 134.8 | 96.6 | 93.3 | 129.0 | 146.8 |
mysqlslap测试结论:
1、XFS在mount的时候需要加上nobarrier参数以获得更好的性能。
2、innodb的表现,XFS和JFS差别不大,各有千秋。
3、myisam的表现,JFS明显比XFS好很多。
结论:
大多数的测试中,JFS优于XFS,所以数据库数据目录的文件系统使用JFS
在数据存放的盘使用deadline的IO调度算法。
转载于:https://blog.51cto.com/scoke/490583