-
互联网安全法,互联网净网行动
-
”净网2020”落实好维护网络安全责任
-
关于端午节放假通知-宇众网络
-
宇众网络春节放假通知
-
关于公司收款银行账户变更通知函-宇众网络
-
关于网上有人冒充我公司名义进行诈骗的公告。
-
关于端午节放假通知,节日放假,但是我们业务不“放假”-宇众网络
-
工信部进一步加强未备案网站管理工作的通知-宇众网络
-
关于东莞市宇众网络科技有限公司香港数据中心(香港机房)路由优化通知
-
宇众网络庆祝五·一劳动节快乐
-
东莞东城机房网络升级通知
-
临近过年,互联网IDC贵圈也有被骗的,请认准宇众网络公司官方联系方式
-
我司已获得ISP/ICP/IDC三证资格,更好的为客户服务
-
关于浙江金华高防机房网络线路切割通知
-
工信部近日下发关于进一步规范域名备案工作的通知
怎么样调动Linux系统的io性能-宇众网络
一 机械磁盘的io的速度主要受“寻道速度”的限制,所以在访问小文件时io性能会极差。如果不在乎成本,可以通过使用固态硬盘来解决这个问题。
二 linux的主流文件系统(如ext4等),在文件系统持续比较满,且需求经常删改文件时,会产生大量文件碎片。在我启发的一款代理服务器中,磁盘长期满负荷运转,运行一个月后文件碎片大约会让io性能降低至只剩20%-30%
百纵科技庆庆带大家来看一下有哪些办法可以减少linux下的文件碎片。另外有一个小技巧,针对互联网图片服务器,可以将io性能提升数倍。
在现有文件系统下进行优化
linux内核和各个文件系统采用了几个优化方案来提升磁盘访问速度。但这些优化方案需求在我们的服务器设计中进行配合才能得到充分发挥。
文件系统缓存
linux内核会将大部分空闲内存交给虚拟文件系统,来作为文件缓存,叫做page cache。在内存不足时,这部分内存会采用lru算法进行淘汰。
通过free命令查看内存,显示为cached的部分就是文件缓存了。
如何针对性优化:
lru并不是一个 优异淘汰算法,lru很大的优势是普适性好,在各种使用场景下都能起到一定的效果。
如果能找到当前使用场景下,文件被访问的统计特征,针对性的写一个淘汰算法,可以大幅提升文件缓存的命中率。
如果不打算写一个新的淘汰算法,一般不需求在应用层再搭一个文件cache程序来做缓存。
很小分配
当文件扩大,需求分配磁盘空间时,大部分文件系统不会仅仅只分配当前需求的磁盘空间,而是会多分配一些磁盘空间。这样下次文件扩大时就可以使用已经分配好的空间,而不会频繁的去分配新空间。
例如ext3下,每次分配磁盘空间时,很小是分配8KB。
很小分配的副作用是会浪费一些磁盘空间(分配了但是又没有使用)
如何针对性优化:
我们在reiserfs下将很小分配空间从8KB改大到128K后提升了30%的磁盘io性能。
在同时有多个io访问时,linux内核可以对这些io访问按LBA进行合并和排序,这样磁头在移动时,可以“顺便”读出移动过程中的数据。
内核有四种不同的排序算法,有些侧重于io性能很大化,也有一些侧重于调度的公平性,大致上的原理都类似于电梯排序。
SATA等磁盘甚至在磁盘中内置了io排序来进一步提升性能,一般需求在主板中进行配置才能启动磁盘内置io排序。linux的io排序是根据LBA进行的,但LBA是一个一维线性地址,无法完全反应出二维的圆形磁盘,所以磁盘的内置io排序能达到更好的效果。
如何针对性优化:
io访问调度能大幅提升io性能,前提是应用层同时发起了足够的io访问供linux去调度。
怎样才能从应用层同时向内核发起多个io访问呢?
方案一是用aio_read异步发起多个文件读写请求。
方案二是使用磁盘线程池同时发起多个文件读写请求。