刷脏页策略linux,linux – 生成大量脏页阻止同步写入
我们有进程对大文件进行后台写入.我们希望那些对其他流程的影响最小.
这是在SLES11 SP4上实现的测试.服务器有大量内存,允许它创建4GB的脏页.
> dd if=/dev/zero of=todel bs=1048576 count=4096
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB) copied,3.72657 s,1.2 GB/s
> dd if=/dev/zero of=zer oflag=sync bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied,16.6997 s,0.0 kB/s
real 0m16.701s
user 0m0.000s
sys 0m0.000s
> grep Dirty /proc/meminfo
Dirty: 4199704 kB
这是我到目前为止的调查:
> SLES11 SP4(3.0.101-63)
>输入ext3(rw,nosuid,nodev,noatime)
>截止日程安排程序
>当时超过120GB的可回收内存
> dirty_ratio设置为40%,dirty_background_ratio设置为10%,30s到期,5s回写
这是我的问题:
>在测试结束时有4GB脏内存,我得出结论,在上面的测试中没有调用IO调度程序.是对的吗?
>因为在第一个dd完成后缓慢持续,我得出结论这个问题也与内核分配内存无关,或者在dd填充缓冲区时发生任何“写入时复制”(dd总是从同一个buf写入).
>有没有办法更深入地调查被阻止的内容?有趣的柜台值得关注吗?关于争用来源的任何想法?
>我们正在考虑减少dirty_ratio值,或者在同步模式下执行第一个dd.还有其他调查方向吗?将第一个dd同步存在缺点吗?我担心它将优先于其他执行异步写入的“legits”进程.
也可以看看
编辑:
在同一设备下有一个ext2文件系统.在这个设备上,根本没有冻结!唯一的性能影响发生在刷新脏页面期间,同步调用可能需要0.3秒,因此与我们使用ext3文件系统的情况相差甚远.
EDIT2:
在@Matthew Ife评论之后,我尝试在没有O_TRUNC的情况下进行同步写入打开文件,你不会相信结果!
> dd if=/dev/zero of=zer oflag=sync bs=512 count=1
> dd if=/dev/zero of=todel bs=1048576 count=4096
> dd if=/dev/zero of=zer oflag=sync bs=512 count=1 conv=notrunc
1+0 records in
1+0 records out
512 bytes (512 B) copied,0.000185427 s,2.8 MB/s
dd用参数打开文件:
open("zer",O_WRONLY|O_CREAT|O_TRUNC|O_SYNC,0666) = 3
使用notrunc选项进行更改,现在就是
open("zer",O_WRONLY|O_CREAT|O_SYNC,0666) = 3
并且同步写入立即完成!
好吧,它对我的用例并不完全令人满意(我在this fashion做了一个msync.但是我现在能够跟踪写和msync做的不同!
事实上,在SLES11下,dd正在打开文件
open("zer",O_WRONLY|O_CREAT|O_DSYNC,0666) = 3
和O_DSYNC == O_SYNC!
结论:
对于我的用例,我应该使用
dd if=/dev/zero of=zer oflag=dsync bs=512 count=1 conv=notrunc
在SLES11下,运行oflag = sync将真正运行oflag = dsync,无论strace在说什么.
刷脏页策略linux,linux – 生成大量脏页阻止同步写入相关推荐
- indesign页眉如何左右分布_indesign的页眉页脚怎么显示出来
在InDesign中能否像Word或者PageMaker那样很方便地插入页脚和页眉? 完全可以.InDesign提供了激动人心的"主页"功能,按住快捷键"F12" ...
- 刷脏页策略linux,【随笔】Linux刷脏页
一.脏页的由来 前情摘要: 1. 在多级存储系统中,上一级高速设备会成为下一级低速设备的缓存.相较之内存,磁盘是一个低速设备,因此Linux中会通过一种叫"磁盘高速缓存"的软件机制 ...
- linux内核页高速缓存,《Linux内核设计与实现》读书笔记(十六)- 页高速缓存和页回写(示例代码)...
主要内容: 缓存简介 页高速缓存 页回写 1. 缓存简介 在编程中,缓存是很常见也很有效的一种提高程序性能的机制. linux内核也不例外,为了提高I/O性能,也引入了缓存机制,即将一部分磁盘上的数据 ...
- Linux内核设计与实现---页高速缓存和页回写
页高速缓存和页回写 1 页高速缓存 2 基树 3 缓冲区高速缓存 4 pdflush后台例程 膝上型电脑模式 bdflush和kupdated 避免拥塞的方法:使用多线程 页高速缓存(cache)是L ...
- linux内存使用策略swap,Linux Swap使用分析
Linux操作系统性能分析主要包含磁盘IO.CPU.内存以及网络流量,而这里主要针对系统内存的使用进程情况做个分析. 一.如何查看系统内存使用情况 1.根据常用命令查看系统内存使用概况 free - ...
- linux下生成静态库和动态库
linux下生成静态库和动态库 一.动态库.静态库简介 库是写好的现有的,成熟的,可以复用的代码.现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常.本质上 ...
- less最后一页 linux_必备linux命令有哪些?你了解多少
大家都知道不管你是单纯的学习linux开发还是嵌入式操作系统都是离不开linux的操作命令的,所以今天想给大家搞一个关于linux操作命令的工作文档形式的文章,也方便大家在学习操作的时候能够快速查询. ...
- linux内核ppt刘小明,【陈老师华为北研所讲座PPT】从机制与策略探究Linux内核设计之道(4)...
原标题:[陈老师华为北研所讲座PPT]从机制与策略探究Linux内核设计之道(4) 解放编译程序,以统一的方式分配逻辑地址. 首先内核通过映射机制把进程的虚拟地址映射到物理地址,在进程运行时,如果内核 ...
- linux 编程 生成.img,从头开始生成 SELinux
SELinux 是 2.6 版本的 Linux 内核中提供的强制访问控制 (MAC)系统.对于目前可用的 Linux 安全模块来说,SELinux 是功能最全面,而且测试最充分的,它是在 20 年的 ...
最新文章
- Ubuntu 之linux与windows互传文件
- 面试官: 讲讲 Spring 事务有哪些坑?
- 将php数组存取到本地文件
- HTML基础,块级元素/行内元素/行内块元素辨析【2分钟掌握】
- eclipse创建folder变成package解决方案
- Nat Mach Intell | 江瑞课题组提出首个针对单细胞染色质开放性数据的细胞类型辨识神经网络模型EpiAnno...
- 年薪20万软件测试工程师都具备的能力,你有吗?
- 体系结构分析与设计语言AADL基础
- vc 获得桌面文件坐标_为何 Elementary OS 中使用 Pantheon 桌面
- MTK 三星处理器一览表
- 【js 分页】js 分页 方法一 【实用】
- 冷高轮时间 小人人体形状造型 手势 麻将 扑克 数字时钟APP android安卓版本/iOS苹果版本
- All-one Matrices
- Centos服务器java环境初始化搭建
- 菜鸡のAxios拙见
- pyinstaller 打包的exe在某些win7上面报错 faild to execute script pyi_rth_multiprocessing
- web前端 --- CSS(04) -- 盒子模型、div+css网页布局、css3新特性
- 便捷式备份系统并还原
- 单个原子对X射线的散射
- windows7旗舰版32位JAVA安装_oracle安装—Windows7旗舰版32位安装oracle10g方法
热门文章
- 前端拆分_如何在消费者驱动的合同测试的帮助下拆分前端和后端的部署
- cms核心功能_如何根据这些重要功能选择合适的CMS
- 论重写和里式替换原则(LSP)
- 大众汽车和鸿蒙,鸿蒙系统下个月即将与大众见面,首发平台并非手机
- mac安装go语言环境
- golang unrecognized import path golang.org/x/net 完美解决方案
- Maven系列(一):maven基础入门
- Python3网络爬虫开发实战,Appium+mitmdump 爬取京东商品
- 清空网站浏览记录就行啦?看Python如何实时监控网站浏览记录
- 案例解释图像傅里叶变换的幅度谱和相位谱的以及反变换