mysql 会用文件系统吗_将MySQL的作为文件系统使用(2)_MySQL

bitsCN.com

因为FUSE可以让你以任何奇怪的方式安装文件系统,理所当然地,用户安装FUSE客户端文件系统的能力也必须受到用户所在组权限的限制。下面是一个例子,在一开始,用户没有安装文件系统的权限,被拒绝安装。然后,我将自己加入到相应的用户组后重新登录,初始的MySQLfs文件系统和数据库都是空的,使用df命令可以显示内核已经知道被安装的文件系统。在例子的结尾,fusermount命令将用户创建的FUSE文件系统卸载了。

$ mkdir ~/mysqlfs

$ mysqlfs -ohost=localhost -odatabase=mysqlfs ~/mysqlfs

* Opening logfile 'mysqlfs.log': OK

fuse: failed to open /dev/fuse: Permission denied

$ su -l

root# usermod -a -G fuse ben

root# exit

$ exit

...

$ id

uid=500(ben) gid=500(ben) groups=492(fuse), ...

$ mysqlfs -ohost=localhost -odatabase=mysqlfs ~/mysqlfs

* Opening logfile 'mysqlfs.log': OK

$ ls -ld mysqlfs

drwxr-xr-x 1 root root 0 2008-01-24 16:24 mysqlfs

$ df -h mysqlfs .

Filesystem Size Used Avail Use% Mounted on

mysqlfs 0 0 0 - /home/ben/mysqlfs

/dev/sdc3 16G 4.4G 11G 31% /home

$ ls -l mysqlfs

total 0

$ fusermount -u mysqlfs

既然我们已经拥有权限,可以将MySQL安装为FUSE文件系统,接下来,让我们复制一些文件到MySQL数据库中,使之与文件系统相结合。在下面的例子中,我将项目Gutenberg的一些文本文件复制到MySQLfs并验证它们在读取的时候,与原始文件有同样的MD5返回值。然后,我将Linux文件tarbar复制到MySQLfs,想看看MySQLfs是如何处理一个44M文件的。

通过冷磁盘高速缓存将内核从/tmp目录备份到/tmp目录需要花2秒,而将之复制到MySQLfs将花费20秒,为了利用磁盘中的缓存,马上将上述操作再次执行,/tmp目录下的备份花费0.3秒,而复制到MySQLfs中依旧花费20秒。这说明,写操作是MySQLfs的主要瓶颈。当读取内核的时候,MySQLfs似乎缓存了一些数据,这使得响应时间大大快于其他测试。如果你的文件系统经常用到读操作,则MySQLfs将是一个有意思的选择,因为MySQLfs的缓存可以派上用场。

~]$ cp -av /.../guten ./mysqlfs/

`/.../guten' -> `./mysqlfs/guten'

`/.../guten/alice13a.txt' -> `./mysqlfs/guten/alice13a.txt'

`/.../guten/boysw10.txt' -> `./mysqlfs/guten/boysw10.txt'

`/.../guten/dmoro11.txt' -> `./mysqlfs/guten/dmoro11.txt'

~]$ cd ~/mysqlfs/guten

guten]$ ls -l

-rw-r----- 1 ben ben 153477 2008-01-12 13:23 alice13a.txt

-rw-rw---- 1 ben ben 48923 2008-01-12 13:23 boysw10.txt

-rw-rw---- 1 ben ben 259214 2008-01-12 13:23 dmoro11.txt

guten]$ md5sum *

135e06ad31b169065bccbf03ec7236f2 alice13a.txt

7dd30f1b37e32cdb5d21fe992bbf248d boysw10.txt

87c05f11193c0e05b3d0dec0808a0450 dmoro11.txt

guten]$ md5sum /.../guten/*

135e06ad31b169065bccbf03ec7236f2 /.../guten/alice13a.txt

7dd30f1b37e32cdb5d21fe992bbf248d /.../guten/boysw10.txt

87c05f11193c0e05b3d0dec0808a0450 /.../guten/dmoro11.txt

guten]$ cd ..

mysqlfs]$ time cp /tmp/linux-2.6.23.tar.bz2 .

real 0m16.278s

user 0m0.006s

sys 0m0.531s

mysqlfs]$ time cat linux-2.6.23.tar.bz2 >/dev/null

real 0m0.502s

user 0m0.004s

sys 0m0.035s

mysqlfs]$ time dd if=linux-2.6.23.tar.bz2 of=/tmp/junk bs=1024 count=1024

1048576 bytes (1.0 MB) copied, 0.0200973 s, 52.2 MB/s

real 0m0.058s

user 0m0.003s

sys 0m0.013s

mysqlfs]$ time dd if=linux-2.6.23.tar.bz2 of=/tmp/junk bs=1024 count=1024 skip=9000

1048576 bytes (1.0 MB) copied, 0.0214207 s, 49.0 MB/s

real 0m0.031s

user 0m0.001s

sys 0m0.011s

虽然被很多人所不齿,但我还是决定在Bonnie++文件系统下使用MySQLfs。我通过虚拟机进行了这些测试,由于是在虚拟机中,性能可能会呈线性下降,但由于MySQL数据库和/tmp目录存储于同一虚拟硬盘上,其性能比还是有效的。

在如下的结果中,你能看到,在运行Bonnie++ (version 1.03a-7)时,MySQLfs的速度是/tmp/bonnie (ext3)的十分之一。这说明,我们并不太想使用MySQLfs来直接存储邮件目录。Bonnie++被设计成适合在本地内核文件系统上工作而非FUSE,这种定位非常适用于大行文件的读写。

$ /usr/sbin/bonnie++ -d /tmp/bonnie

Version

1.03

------Sequential Output------ --Sequential Input- --Random-

-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--

Machine

Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP

/sec %CP

v8tsrv

2G 18155

31 16726

5 13338

6 26207

46 74527

24

9840 144

------Sequential Create------ --------Random Create--------

-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--

files

/sec %CP

/sec %CP

/sec %CP

/sec %CP

/sec %CP

/sec %CP

16 24878

94 +++++ +++ +++++ +++ 29018

99 +++++ +++ +++++ +++

$ /usr/sbin/bonnie++ -d ~/mysqlfs/bonnie

Version

1.03

------Sequential Output------ --Sequential Input- --Random-

-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--

Machine

Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP

/sec %CP

v8tsrv

2G

2615

5

1207

1

1323

1

2143

2

2363

0 138.1

0

------Sequential Create------ --------Random Create--------

-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--

files

/sec %CP

/sec %CP

/sec %CP

/sec %CP

/sec %CP

/sec %CP

16

186

2

505

1

296

2

209

2

441

1

282

2bitsCN.com

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

TAG标签:安装能力用户

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值