文档章节

pdflush的工作原理

水海云
 水海云
发布于 2017/09/08 23:02
字数 461
阅读 39
收藏 0
点赞 0
评论 0

1 . 定时方式

定时机制定时唤醒pdflush内核线程,周期为/proc/sys/vm/dirty_writeback_centisecs ,单位是(1/100)秒,每次周期性唤醒的pdflush线程并不是回写所有的脏页,而是只回写变脏时间超过/proc/sys/vm/dirty_expire_centisecs(单位也是1/100秒)。

注意:变脏的时间是以文件的inode节点变脏的时间为基准的,也就是说如果某个inode节点是10秒前变脏的,pdflush就认为这个inode对应的所有脏页的变脏时间都是10秒前,即使可能部分页面真正变脏的时间不到10秒,细节可以查看内核函数wb_kupdate()。

2.内存不足的时候

这时并不将所有的dirty页写到磁盘,而是每次写大概1024个页面,直到空闲页面满足需求为止。

3 . 写操作时发现脏页超过一定比例

当脏页占系统内存的比例超过/proc/sys/vm/dirty_background_ratio 的时候,write系统调用会唤醒pdflush回写dirty page,直到脏页比例低于/proc/sys/vm/dirty_background_ratio,但write系统调用不会被阻塞,立即返回。当脏页占系统内存的比例超过/proc/sys/vm/dirty_ratio的时候, write系统调用会被被阻塞,主动回写dirty page,直到脏页比例低于/proc/sys/vm/dirty_ratio。

4 . 用户调用sync系统调用

这是系统会唤醒pdflush直到所有的脏页都已经写到磁盘为止。

© 著作权归作者所有

共有 人打赏支持
水海云
粉丝 49
博文 116
码字总数 98212
作品 0
广州
程序员
kswapd和pdflush

首 先,它们存在的目的不同,kswap的作用是管理内存,pdflush的作用是同步内存和磁盘,当然因为数据写入磁盘前可能会换存在内存,这些缓存真正写 入磁盘由三个原因趋势:1.用户要求缓存马上写...

晨曦之光 ⋅ 2012/04/10 ⋅ 0

Linux内核参数调优之IO调优(一)

说明:IO调优,对IO操作较频繁的服务效果比较明显,比如说数据库类型(mysql,oracle)。 1. pdflush刷新脏数据条件 cached中的脏数据满足如下几个条件中一个或者多个的时候就会被pdflush刷新...

在下郑小明 ⋅ 2017/03/18 ⋅ 0

记一次服务器IO过高处理过程

记一次服务器IO过高处理过程 一、背景 在一次上线升级后,发现两台tomcat服务器的IOwait一直超过100ms,高峰时甚至超过300ms,检查服务器发现CPU负载,内存的使用率都不高。问题可能出现在硬...

四京 ⋅ 2017/05/27 ⋅ 0

缓存和页回写

页高速缓存(cache)是linux内核实现磁盘缓存,主要用来减少对磁盘的IO操作,通过把磁盘的数据缓存在物理内存中,把对磁盘的访问变为对物理内存的访问。 现代操作系统存在高速缓存的两个因素:...

China_OS ⋅ 2012/12/04 ⋅ 0

Linux内存管理机制简介

在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。这是Linux内存管理的一个优秀特性,区别于 Windows的内存管理。 主要特点是,无论物理内...

Amamatthew ⋅ 2014/08/19 ⋅ 0

Linux 下10个不得不知道的”系统进程”

在日常的运维工作中,当我们习惯性的执行ps命令后会看到很多“奇奇怪怪”的进程,而这些进程大部门都是系统的内核进程。很多同学对之了解的甚少,因此今天就为大家整理一篇入门级的系统进程介...

Forande ⋅ 2017/11/10 ⋅ 0

linux下proc里关于磁盘性能的参数

  我们在磁盘写操作持续繁忙的服务器上曾经碰到一个特殊的性能问题。每隔 30秒,服务器就会遇到磁盘写活动高峰,导致请求处理延迟非常大(超过3秒)。后来上网查了一下资料,通过调整内核参...

ffredy ⋅ 2015/11/04 ⋅ 0

数据一致性和io类型

版权声明:本文由高剑林原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/106 来源:腾云阁 https://www.qcloud.com/community 对linux内核来说,读写要经...

偶素浅小浅 ⋅ 2016/10/31 ⋅ 0

buffer && cache

个人理解为: buffer 是指写操作的缓存 cache 是指读操作的缓存 内存页类型 Read Pages - 这些页通过MPF 从磁盘中读入,而且是只读.这些页存在于Buffer Cache中以及包括不能够修改的静态文件,...

China_OS ⋅ 2012/06/13 ⋅ 0

linux内核升级后,wa很高

内核升级后版本: 2.6.36 升级后[pdflush]进程不见了,多了[flush-253:0][flush-253:2]这两个进程。 感觉是把dirty数据写入磁盘的策略不同了,频繁刷数据到磁盘造成io高,求解决办法。...

火星人 ⋅ 2011/06/24 ⋅ 2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Boot整合模板引擎thymeleaf

项目结构 引入依赖pom.xml <!-- 引入 thymeleaf 模板依赖 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId......

yysue ⋅ 14分钟前 ⋅ 0

ConstraintLayout使用解析

AndroidStudio3.0创建Project默认的布局就是ConstraintLayout。 AndroidStudio3.0前的可以自己修改,使用ConstraintLayout。 为了要使用ConstraintLayout,我们需要在app/build.gradle文件中...

_OUTMAN_ ⋅ 25分钟前 ⋅ 0

OSChina 周三乱弹 —— 这样的女人私生活太混乱了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 胖达panda :你经历过体验到人生的大起大落吗?我一朋友在10秒内体验了,哈哈。@小小编辑 请点一首《almost lover》送给他。 《almost love...

小小编辑 ⋅ 59分钟前 ⋅ 9

自己动手写一个单链表

文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源。 一、概述 单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对...

公众号_好好学java ⋅ 今天 ⋅ 0

Centos7重置Mysql 8.0.1 root 密码

问题产生背景: 安装完 最新版的 mysql8.0.1后忘记了密码,向重置root密码;找了网上好多资料都不尽相同,根据自己的问题总结如下: 第一步:修改配置文件免密码登录mysql vim /etc/my.cnf 1...

豆花饭烧土豆 ⋅ 今天 ⋅ 0

熊掌号收录比例对于网站原创数据排名的影响[图]

从去年下半年开始,我在写博客了,因为我觉得业余写写博客也还是很不错的,但是从2017年下半年开始,百度已经推出了原创保护功能和熊掌号平台,为此,我也提交了不少以前的老数据,而这些历史...

原创小博客 ⋅ 今天 ⋅ 0

LVM讲解、磁盘故障小案例

LVM LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。 1.新建分区,更改类型为8e 即L...

蛋黄Yolks ⋅ 今天 ⋅ 0

Hadoop Yarn调度器的选择和使用

一、引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色。在讨论其构造器之前先简单了解一下Yarn的架构。 上图是Yarn的基本架构,其中ResourceManager是整个架构的核心组件,它负...

p柯西 ⋅ 今天 ⋅ 0

uWSGI + Django @ Ubuntu

创建 Django App Project 创建后, 可以看到路径下有一个wsgi.py的问题 uWSGI运行 直接命令行运行 利用如下命令, 可直接访问 uwsgi --http :8080 --wsgi-file dj/wsgi.py 配置文件 & 运行 [u...

袁祾 ⋅ 今天 ⋅ 0

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部