推荐: blog.csdn.net/aquester https://github.com/eyjian https://www.cnblogs.com/aquester http://blog.chinaunix.net/uid/20682147.html
全部博文(595)
分类: LINUX
2008-06-16 15:04:36
配置RAID的时候,有个可以手工设定的参数:Stripe size.
逻辑驱动器的Stripe size,代表控制器每次写入一块物理磁盘的数据量,以KB为单位。
不同Stripe size的选择直接影响性能,如IOPS和吞吐量。
Stripe size值小,通过多块磁盘响应多个I/O请求,可以增加I/O访问速率(IOPS)
Stripe size值大,通过多块磁盘响应一个I/O请求,可以增加数据传输速率(Mbps)
你可以使用performance monitor工具来评测Stripe size的设置对性能的影响。(显然这种评测要在测试环境里进行)
请按照如下指导方针进行评测:
1 如果典型的I/O size比Stripe size大,增加Stripe size,从而尽量减少响应同一个I/O请求的物理磁盘数量
这种设置适合于多用户、数据库、文件系统存储环境。使用单一磁盘响应单一请求,留下其他磁盘同时完成其他I/0请求。
2 对于单用户、I/O值大的环境(如多煤体应用存储),如果一个I/O请求能被一个data stripe(Stripe size乘以该ARRAY中响应I/O请求的磁盘数量)
所响应,将使性能优化。这种情况下,多块磁盘响应同一个I/O请求,但每块磁盘只被访问一次。
3 通常,小Stripe size适用于数据库,一般Stripe size适用于文件服务器,大Stripe size适用于多煤体应用。
4 增加Stripe size,理论上会增加最大磁盘吞吐量。
使用技巧:Stripe size大小可以设置为8 KB, 16 KB, 32 KB, 64 KB, 128 KB, 和 256 KB:
Storage Manager设置Stripe size的默认值是64 KB.
对于数据库应用,Stripe size在4-16 KB之间被证明效果比较好;对于大文件环境,比如流煤体或CAD,建议Stripe size设置为128KB以上。
对于Web服务器以及文件打印服务器,建议Stripe size设置为16-64 KB.
注意:对Stripe size的设置是否合理,应该在生产系统运行前,进行性能测试以作出最后的决定。你可以动态调整Stripe size,但是数据重写过程会
影响性能。因此在生产系统下要慎重使用。
aquester2008-06-16 15:08:15
随机IO度高的strip要大。对顺序IO依赖的就设小。不过我们的服务一般不会有顺序IO性能要求很高的。 send buffer可以考虑设到1M以上。不过那样只能用64位系统,否则马上socket buffer溢出。 /proc/sys/net/ipv4/下的tcp mem要设大,否则890M限制立马溢出。 普通SCSI并发10个线程基本上就是随机IO性能了。光纤RAID能到100个并发IO。随机IO性能很多,每盘每秒差不多300次不到。如果一次读32K,也就是10M/s的IO性能。RAID的strip一定要调很大,至少1M的大小。那些16K、64K的RAID对性能没有任何好处。 这些数据是否有热门访问,如果有的话可以考虑强制cache。也就是mmap+mlock。调调readahead的值。