仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 398|回复: 7
打印 上一主题 下一主题

[CentOS(社区)] 来一发怎样让CentOS办事器磁盘io功能翻倍

[复制链接]
若天明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:19:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!这一期我们来看一下有哪些举措能够削减linux下的文件碎片。次要是针对磁盘临时满负荷运转的利用场景(比方http代办署理办事器);别的有一个小技能,针对互联网图片办事器,能够将io功能提拔数倍。假如为办事器订制一个公用文件体系,能够完整办理文件碎片的成绩,将磁盘io的功能发扬至极限。关于我们的代办署理办事器,相称于把io功能提拔到3-5倍。

在现有文件体系下举行优化linux内核和各个文件体系接纳了几个优化计划来提拔磁盘会见速率。但这些优化计划必要在我们的办事器计划中举行共同才干失掉充实发扬。



文件体系缓存linux内核会将年夜局部余暇内存交给假造文件体系,来作为文件缓存,叫做pagecache。在内存不敷时,这局部内存会接纳lru算法举行减少。经由过程free下令检察内存,显现为cached的局部就是文件缓存了。


假如能找到以后利用场景下,文件被会见的统计特性,针对性的写一个减少算法,能够年夜幅提拔文件缓存的射中率。关于http正向代办署理来讲,一个好的减少算法能够用1GB内存到达lru算法100GB内存的缓存效果。假如不盘算写一个新的减少算法,一样平常不必要在使用层再搭一个文件cache步伐来做缓存。

最小分派


最小分派的反作用是会华侈一些磁盘空间(分派了可是又没有利用)

假如以后利用场景下小文件良多,把预分派改年夜就会华侈良多磁盘空间,以是这个数值要依据以后利用场景来设定。仿佛要间接改源代码才干失效,不太记得了,09年的时分改的,有乐趣的同砚本人谷歌吧。

io会见调剂


怎样针对性优化:io会见调剂能年夜幅提拔io功能,条件是使用层同时倡议了充足的io会见供linux往调剂。如何才干从使用层同时向内核倡议多个io会见呢?计划一是用aio_read异步倡议多个文件读写哀求。

小提醒:将文件句柄设置为非堵塞时,历程仍是会就寝守候磁盘io,非堵塞关于文件读写是不失效的。在一般情形下,读文件只会引进十几毫秒就寝,以是不太分明;而在磁盘io极年夜时,读文件会引发十秒以上的历程就寝。详见内核源代码do_generic_file_read会挪用lock_page_killable进入眠眠,可是不会判别句柄的非堵塞标记。

预读取linux内核能够展望我们“未来的读哀求”并提早将数据读掏出来。经由过程预读取能够削减读io的次数,而且减小读哀求的延时。


当文件扩展,必要分派磁盘空间时,能够不当即举行分派,而是暂存在内存中,将屡次分派磁盘空间的哀求聚合在一同后,再举行一次性分派。
提早分派的反作用有几个:1假如使用步伐每次写数据后都经由过程fsync等接口举行强迫革新,提早分派将不起感化2提早分派有大概间歇性引进一个较年夜的磁盘IO延时(由于要一次性向磁盘写进较多半据)
怎样针对性优化:

有乐趣的同砚能够参考http://jsmylinux.no-ip.org/applications/using-e4defrag/
“让每一个目次下的文件一连存储”是一个极有代价的功效。假定一个网页上有10张图片,这10张图片固然存在10个文件中,但实际上是几近同时被用户会见的。假如能让这10张图片存储在一连的磁盘空间中,就可以把io功能提拔10倍(一次寻道就能够读10个文件了)传统的做法是经由过程拼接图片来将这10张图片兼并到一张年夜图中,再由前端将年夜图切成10张小图。有了e4defrag后,能够将需一连会见的文件放在统一个文件夹下,再按期利用e4defrag举行磁盘收拾。

完成本人的文件体系我们已经写过一款公用文件体系,针对代办署理办事器,将磁盘io功能提拔到3-5倍。在年夜局部办事器上,不必要撑持“修正文件”这个功效。一旦文件创立好,就不克不及再做修正操纵,只撑持读取和删除。在这个条件下,我们能够没落一切文件碎片,把磁盘io效力提拔到实际极限。


年夜于16MB的文件,办事器创立文件时告知文件体系分派16MB磁盘空间。后续每次扩展文件巨细时,要末是16MB,要末就是文件闭幕。不同意在文件未闭幕的情形下分派非16MB的空间。读写文件时,每次读写16MB大概直到文件开端。

在我们的文件体系中,小文件完整无碎片,一次寻道就可以弄定一个文件,到达了实际上最好的功能。年夜文件每次磁头定位读写16MB,功能没有到达100%,但已相称好了。有一个公式能够权衡磁盘io的效力:磁盘使用率=传输工夫/(均匀寻道工夫+传输工夫)对我们事先接纳的磁盘来讲(1T7200转sata),16MB一连读写已能够到达98%以上的磁盘使用率。
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!
沙发
发表于 2015-1-15 23:42:06 | 只看该作者

来一发怎样让CentOS办事器磁盘io功能翻倍

熟读写基础知识,学得会不如学得牢。
不帅 该用户已被删除
板凳
发表于 2015-1-24 12:41:16 | 只看该作者
以前觉得Linux就跟dos一样,全是用命令窗口,相对于窗口界面来说多麻烦呀。
若天明 该用户已被删除
地板
 楼主| 发表于 2015-2-1 16:28:10 | 只看该作者
在学习的过程中,我们用的是VM虚拟机,开始时真的不真的该怎么去做,特别是我的是命令窗口界面,别人的是图形界面,我都不知道怎么调过来。
山那边是海 该用户已被删除
5#
发表于 2015-2-22 11:46:16 | 只看该作者
下面笔者在论坛看到的一个好问题: “安装红旗4.0后,系统紫光输入法自带的双拼方案和我的习惯不一样,如何自定义双拼方案解决?谢谢?”这个问题很简练。
谁可相欹 该用户已被删除
6#
发表于 2015-3-7 03:06:21 | 只看该作者
我感觉linux的学习,学习编程~!~!就去学习C语言编程!!
老尸 该用户已被删除
7#
发表于 2015-3-14 11:52:39 | 只看该作者
其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。
分手快乐 该用户已被删除
8#
发表于 2015-3-21 09:44:39 | 只看该作者
我是学习嵌入式方向的,这学期就选修了这门专业任选课。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-16 13:23

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表