Linux IO调优的几点考虑
来源:互联网 发布:网络口碑营销实例 编辑:程序博客网 时间:2024/05/29 03:55
针对linux IO性能的调优可以从以下几个方面考虑:
1.块设备的预读粒度,根据读、写操作的粒度来确定此数值的大小
2.块设备的调度算法,主要有cfq、deadline、Anticipatory、noop四种;
其中:
noop不对请求做出特定的排序,只做IO请求的聚合,适合ssd、ramdisk等不需要磁头寻址的设备
cfq(complete fair queueing),根据磁盘扇区号排序,减少磁盘寻道时间,实现了IO聚合,它的特点是对所有请求进程保证完全的公平,也就是在一个特定的时间内,保证每个进程的请求数量一样多
deadline根据硬盘扇区号进行读写的排序,并为请求设置最后期限,防止这些请求在一段时间内得不到调度
anticipatory识别请求的进程号,能够利用请求的局部性特点,适合顺序读写场景
总结:noop应用在ssd设备上;cfq、deadline应用在零散io请求,比如数据库;anticipatory应用在顺序io读写的场景
3.利用posix_fadvise对应用程序的读写进行优化,主要用到willneed方式将文件内容读到page cache,dontneed将文件的page cache清空,sequntial将文件的预取窗口放大2倍
4.使用taskset将进程与cpu核绑定
5.利用iostat、sar,来分析从硬盘上读取的数据与网卡发送的数据流量是否一致
6.对小写、小读比如mysql数据库应用,使用ssd来存储
7.尽量加大物理内存,并且禁用swap分区
8.应用程序尽量避免线程泛滥,尽量采用线程池化或者单线程多任务
9.保证应用正确的前提下,减小锁的粒度
10.采用TOE、RDMA网卡
11.使用零拷贝sendfile发送socket文件
12.使用异步、非阻塞方式发送文件
13.使用AIO
14.对RAID的chunk进行调优、文件系统的block参数进行调优,针对读取粒度选择合适的chunk和block参数
15.均中断
- Linux IO调优的几点考虑
- 数据库设计原则的几点考虑
- Javascript使用上的几点考虑
- Javascript使用上的几点考虑
- 软件开发考虑几点
- Java读取Excel文件的几点考虑
- 【zz】设计触摸交互的几点考虑
- 关于AIX系统文件安全性方面的几点考虑
- 移动互联中CS架构要着重考虑的几点
- [openstack swift]4 悬而未决的问题和几点考虑
- p2sp设计需要考虑的几点问题整理
- AIX系统文件安全性方面的几点考虑
- 系统构建初级阶段所要考虑的几点
- 关于做深度学习 FPGA的几点考虑
- 51单片机IO口的几点说明
- 在应用系统的设计中,要着重考虑以下几点:
- 做程序架构设计时须着重考虑的几点
- p2sp设计需要考虑的几点问题整理(续)
- System.Data.Silverlight V2.0版本升级说明
- PS初学(一)
- openJTAG学习笔记一
- ASP.Net课堂--实验3
- hdu2076-夹角有多大(题目已修改,注意读题)
- Linux IO调优的几点考虑
- web三层架构mvc
- Xcode4.2以后iOS应用的启动顺序变化
- The format of Oracle tnsnames.ora file
- 工作中的女人最美丽
- struts2中的拦截器
- 一个APK文件部署产生多个应用安装的效果
- java中sleep方法和yield方法的比较
- [ACM]A + B Problem (大数相加3种方法)