首先说两个关键知识点,供大家参考:
1.glusterfs 3.x.x版本后,客户端不再存储配置文件。客户端依靠nfs协议(或gluster native协议)动态的从服务端获取卷的信息。
2.与其它分布式存储不同,如果你建立的是复制卷,gluster客户端会并发的向几个服务器写入\读取数据,而不是通过服务器之间进行数据的传输。
接下来介绍两个测试时可能会用到的工具:
1.iozone:文件系统的benchmark工具,测试不同文件系统的读写性能。具体使用方法可以参考网上资料相关的介绍。
2.nethogs:可以监控每个进程的网络带宽占用情况。
进入正题,开始我们的性能测试及优化工作吧。先来介绍一下配置文件中与性能相关的参数。
performance/quick-read:优化读取小文件的性能。
performance/read-ahead:用预读的方式提高读取的性能,有利于应用频繁持续性的访问文件,当应用完成当前数据块读取的时候,下一个数据块就已经准备好了。
performance/write-behind:在写数据时,先写入缓存内,再写入硬盘,以提高写入的性能。
performance/io-threads:由于glusterfs服务是单线程的,使用IO线程转换器可以较大的提高性能。
performance/io-cache:缓存已经被读过的数据,以提高IO性能,当IO缓存中继检测到有写操作的时候,它就会把相应的文件从缓存中删除。
具体的配置可参考:http://www.gluster.org/community/documentation/index.p