如何提高mysql的性能?正确的选择文件系统,绝对是一个有效的方法之一。EXT4已经出现一段时间了,mysql在EXT4下的表现如何?
本文对当前linux几款常用的文件系统(ext4,jfs,reiserfs,xfs,ext3,文件系统的安装可以参考这里)在mysql下的性能进行了测试。
一、使用super-smack测试
测试方式:

time super-smack -d mysql select-update.smack 10 50000 (50 10000,100 5000,200 2500)
read sql : select SQL_NO_CACHE * from test where id = ‘随机’;
write sql: update test set id=id+1 where id = ‘随机’;

测试结果如图,完成时间比较:

每秒执行次数比较:

二、使用mysqlslap测试
测试方式:

/usr/local/mysql/bin/mysqlslap -u root -p -h localhost -c 10,50,100,200 -i 1 \
–engine=myisam –auto-generate-sql-load- type=mixed –number-of-queries=50000 \
–number-char-cols=5 –number-int-cols=5 –auto-generate-sql

测试结果,按执行时间比较:

从测试的结果可以看出,EXT4的表现并没有想象中这样强悍,和XFS,JFS,REISERFS等差不太多,反而JFS的表现出乎意料,在高并发的情况下,表现最好。查看下JFS的版本,果然是刚出的新版本。
mkfs.jfs -V
mkfs.jfs version 1.1.14, 06-Apr-2009
那么到底应该如何选择呢?
EXT3就不多说了,太老了。REISERFS因为作者入狱了,无法保障更新,所以先PASS。EXT4毕竟新出的,而且内核需要升级的2.6.28以后,还是让其他人先吃螃蟹吧。剩下的选择就是JFS和XFS,JFS有IBM在做后盾,稳定性和后续BUG修正等都比较靠谱,从测试看性能比XFS稍微强一点,所以我觉得JFS应该是首选,然后是XFS。

一、内核升级,可以到这里下载

tar -xzvf linux-2.6.29.3.tar.gz
cp reiser4-for-2.6.29.patch.gz linux-2.6.29.3/
cd linux-2.6.29.3
gunzip -c reiser4-for-2.6.29.patch.gz | patch -p1 #安装REISERFS内核补丁,下载地址在后文中
make mrproper
make menuconfig #选择让内核支持EXT4,JFS,XFS,REISERFS,如图

make dep
make clean
make bzImage
cp arch/x86_64/boot/bzImage /boot/vmlinuz-2.6.29.3
make modules
make modules_install
cd /boot
mkinitrd initrd-2.6.29.3.img 2.6.29.3
 
PS:如果编译的内核出现No module mptscsi found for kernel 2.6.29.3, aborting.
先要修改一下/etc/modprobe.conf文件,把里面的alias scsi_hostadapter1 mptscsi注释掉
 
cd /root/linux-2.6.29.3
cp System.map /boot/System.map-2.6.29.3
cp .config /boot/config-2.6.29.3
cd /boot
ln -s System.map-2.6.29.3 System.map
 
vi /boot/grub/grub.conf
 
title 2.6.29.3
root (hd0,0)
kernel /vmlinuz-2.6.29.3 [...]

在Linux下安装XFS文件系统

3 Comments2009年05月13日 作者: 大头刚 

XFS 最初是由 Silicon Graphics,Inc. 于 90 年代初开发的。那时,SGI 发现他们的现有文件系统(existing filesystem,EFS)正在迅速变得不适应当时激烈的计算竞争。为解决这个问题,SGI 决定设计一种全新的高性能 64 位文件系统,而不是试图调整 EFS在先天设计上的某些缺陷。因此,XFS 诞生了,并于 1994 年随 IRIX 5.3 的发布而应用于计算。它至今仍作为 SGI 基于 IRIX 的产品(从工作站到超级计算机)的底层文件系统来使用。现在,XFS 也可以用于 Linux。XFS 的 Linux 版的到来是激动人心的,首先因为它为 Linux 社区提供了一种健壮的、优秀的以及功能丰富的文件系统,并且这种文件系统所具有的可伸缩性能够满足最苛刻的存储需求。

1、首先确定自己的平台和版本,以redhat4为例
[root@snparty1 ~]# uname -a
Linux 2.6.9-22.ELsmp #1 SMP Mon Sep 19 18:00:54 EDT 2005 x86_64 x86_64 x86_64 GNU/Linux
2、根据自己的平台到官方网站下载XFS以及相关包。

kernel-module-xfs-2.6.9-22.EL-0.1-1.src.rpm v0.1, for kernels before 2.6.9-42
kernel-module-xfs-2.6.9-42.0.2.EL-0.2-1.src.rpm v0.2, for kenrels at [...]