最近这段时间实验室的黄博在研究将Linux IO Scheduler的四种调度算法应用在SSD中。(在ubuntu12.04中只有3种调度算法Noop、Deadline、Cfq)
他就给我分配了一个任务:通过测数据库的tmp值来反映底层IO的性能(我对这真心不清楚)。任务下来之后他就给了我一个TPC的官网,我看了好久也不知道怎么个测量方法,起初看到貌似还得自己写代码去实现测量都有点怕了,好在最后在网上还是搜索到了相关的测量工具。我首先使用的是Benchmark-factory。在Windows平台下测量SQL Server的性能,这个软件还比较好用,整个设置还是蛮容易的。测了一组数据准备给黄博看看时,他说他要的是Linux下的结果。哎,这不得重新搞了,其实我知道他要Linux下的结果,我也只是先拿windows练练手啊,鄙人对Linux还不熟嘛。悲剧的是感觉自己刚刚将Benchmark-factory用熟了,但是网上说它没有Linux版本的,又得重新去物色一款软件了,最后就找到了Hammerora,下载Hammerora又是一个痛苦的过程,随着Sourceforge在中国大陆被封,Hammerora的官网进不去,其它很多的下载链接都是链接的官网上的,在极少的地方会有下载地址,那速度真是龟速啊!好不容易下载了一个,可是刚开始由于自己不会使用的原因,运行老是不正确,最后我想我还是进官网去下载吧,这就又面临着翻出去的问题,好在本科的时候跟恒导一起研究过怎么翻,呵呵!进去之后就把Hammerora-2.10的四种版本全下载下来了(Linux或Win与32bit或64bit的组合)。我还是比较依赖Windows的,所以决定还是先在Windows里面捣鼓一下,在Windows里面我选择的是测量SQL Server 的性能,经过一番配置之后就开始了测量,记得当时是9点40左右开始测的,到了中午11:30还没有结束,我还说等测完了好去吃饭啊。到了12:30的时候我实在是等不了了,果断选择了去吃饭,到后来才知道我这个决定是多么的正确,吃完饭之后还在测,在另一台电脑上娱乐了一下(测试的那台电脑基本上啥都干不了),它还在测,我就去睡了一觉,醒来的时候都快3点了,它还测,看着它测量数据不停地刷新,我实在是不忍心把它kill掉,又等了半个多小时,它还在测,我快疯了,又气又怒又好笑的把Hammerora给关了,一旁的军哥笑死了。后来我把这个情况给黄博说了一下,他说时间不是问题,并且还说你怎么总习惯在Windows下搞啊!之后就开始了我更痛苦的在Ubuntu12.04下安装以及运行Hammerora之路(后来想想只能怪自己太菜了!)
在Linux下我选择了mysql数据库,安装mysql异常的顺利,装好之后我想先熟悉一下它,以前写的程序都是使用的SQL Server。因为在Windows里面运行Hammerora时也是需要先配置一下数据库的,接下来我就按mysql的帮助文档一步一步的操作起来,到此的感觉也都还好,然后我就去安装Hammerora.
chmod u+x Hammerora-2.10-Linux-x86-Install
./ Hammerora-2.10-Linux-x86-Install
运行完这两条命令之后就显示出错了:大意是缺少一个叫做libxss.so.1的共享库。对于这个问题刚开始我以为是我mysql的环境变量没有设置好,在网上搜了很多,感觉也没有什么可用的信息,(也许有只是我不能理解而已),就在一个貌似专门提供libxss1.so.1的网站上下了一个,要命的是那个网站提供很多版本就是没有ubuntu版的,可想而知下载下来安装之后也没有什么作用,最后的情况果然是没有作用。此时不知道在什么地方我下载了一份Hammerora-2.10的全英文的帮助文档,80多页啊,我看啊看啊!大致看完之后也没有找到太有用的信息,然后又在网上不停地浏览,可能使用Hammerora的人真的不多吧,一直都没有找到真正的解决方法,不得不承认我沮丧了,灰心了,心情down到了极点。
最后是在是没有办法了,不知道为什么我又进入了Hammerora的官网,毫无希望的浏览着,又下载了一份Hammerora-2.11的帮助文档,虽然只有20页,但是感觉里面的信息更有针对性(虽然也没能解决我的问题)。我进入了Hammerora的论坛,找了好久终于找到了让我吐血的解决方法:sudo apt-get install libxss1。你能别这么坑吗?
你显示的明明是缺少libxss.so.1。当我使用sudo apt-get install libxss.so.1时得到的回应是没有此软件包啊!浏览了那么多的网页也没有谁使用过这么简单的方法,我不知道我该发什么样的感慨!
sudo apt-get install libxss1
sudo apt-get install libaio1
chmod u+x Hammerora-2.10-Linux-x86-Install
./ Hammerora-2.10-Linux-x86-Install
这样的三条命令下去之后Hammerora就装好了,当时只能用悲喜交加来形容啊!差一点就痛哭流涕了!运行之后当我准备建一个新的mysql schema时问题又来了(这是我预料之中的,因为我还没有设置mysql与Hammerora连接时的环境变量)。还是在Hammerora论坛里面找吧,但是查到的大部分都是配置oracle与Hammerora连接时的环境变量。大致如下:
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client/lib
export ORACLE_LIBRARY=/usr/lib/oracle/11.2/client/lib/libcintsh.so
我就想仿造这种方式设置一下mysql与Hammerora连接时的环境变量,结果还是没有成功。
......
功夫不负有心人啊!最后还是在论坛里面找到了我需要的解决方法,虽然不是上面的那种形式,但毕竟是解决了我的问题!
~/hammerora-2.10> export LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH
~/hammerora-2.10> ./bin/tclsh8.5
% package require mysqltcl
3.05
% mysqlconnect -host 127.0.0.1 -port 3306 -user root -password mypassword
mysql0
%
重新运行Hammerora:
cd hammerora-2.10
./hammerora.tcl
然后新建mysql schema连接成功,做了一些基本设置之后就开始测量了,运行截图如下:
这次让我意识到多方面的不熟会招来很多不必要的麻烦,像那种官网的帮助手册和论坛真的是解决问题的好地方,虽然是全英的,硬着头皮看呗!
以上是在实验室的台式机上的整个过程,今天我拿回了自己的笔记本,就想在笔记本上安装这一套来测试。
虽然台式机和笔记本上操作系统都是ubuntu12.04。但是通过uname -a命令还是可以看到稍有不同。其中台式机上是x86,而笔记本上是x86_64。
所以在笔记本上面安装Hammerora肯定要选择Hammerora-2.10-Linux-x86-64-Install。
mysql和Hammerora的安装过程很顺利,可是到了配置Hammerora和mysql连接时的环境变量时竟然出了问题。
~/hammerora-2.10> export LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH
~/hammerora-2.10> ./bin/tclsh8.5
% package require mysqltcl
当输了这三条命令之后竟然显示
error while loading shared libraries: libmysqlclient.so.16: cannot open shared object file: No such file or directory failed
~/hammerora-2.10> export LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH
~/hammerora-2.10> ./bin/tclsh8.5
% package require mysqltcl
还是有问题,显示如下:
libmysqlclient.so.16:WRONG ELF CLASS:ELFCLASS32。
这个问题大致一看,貌似是32位和64位的区别,上网一查果然有一个提供libmysqlclient.so.16(64bit)的下载链接。下载下来将/usr/lib中的那个替换掉,重新运行上述命令,问题解决!
libmysqlclient.so.16(64bit)的下载链接:http://download.csdn.net/detail/hs794502825/4486807