- 1、本文档共44页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IO-less Dirty Throttling
IO-less Dirty Throttling
Fengguang Wu
fengguang.wu@
LINUXCON JAPAN 2012
Write and writeback
USER APPLICATION KERNEL FLUSHER THREAD
================== =====================
dirty pages and writeout pages after
immediately return dirty expired (30s)
avoid blocking apps aggregate write IO
The flusher thread(s)
Initiate writeback IO in background
One flusher per storage device
.
.
$ ps ax
PID TTY STAT TIME COMMAND
2322 ? S 0:01 [flush-8:0]
12681 ? S 0:00 [flush-btrfs-1]
Dirty throttling
To limit dirty pages.. by slowing down heavy dirtiers.
IO-full balance_dirty_pages()
sys_write()
balance_dirty_pages()
i f (over_bground_thresh())
start_background_writeback();
i f (dirty exceeded)
writeback_inodes(pages_dirtied * 3/2);
Problem: disk seeks + lock contentions
flusher task 1 task 2 task 3
*************** concurrently working on ****************
++ ++ ++ ++
| | | | | | | |
| | | | | | | |
| | | | | | | |
| inode 1 | | inode 2 | | inode 3 | | inode 4 |
| | | | | | | |
| | | | | | | |
|| || || ||
++ ++ ++ ++
disk seeks small IO
lock contentions cache bouncing
Problem: large latencies
tasks in deep IO path are not killable
hurts responsiveness
hurts throughput (pipeline stalls)
.
.
loop {
READ from net
WRITE to disk # long sleeps = idle network
}
rsync to a loaded server:
pause time: 0-3s 0-300ms 60-70ms
throughput: 1 +12.4% +63.5%
30s pause (NFS, 1-dd)
NFS, 1 dd, 3G mem, 2.6.38-rc7
3s pause (xfs, 8-dd)
xfs, 8 dd, 4G mem, 2.6.38-rc7
Let’s do controllable sleeps!
I/O ? sleep
i f (dirty exceeded)
- writeback_inodes(pages_dirtied * 3/2);
+ sleep(pages_dirtied / task_ratelimit);
and rethink dirty balancing ……
Balancing dirty rate
apps’ dirty progress
disk write progress
Balancing dirty pages
global dirty limit
global dirty pages
global dirty setpoint
per-disk dirty pages
per-disk dirty setpoint
IO-less dirty throttling/balancing
Do proper sleep()s during sys_write():
.1 throttle each task’s dirty rate around write_bandwidth / N
.2 balance the global dirty pages around global
您可能关注的文档
- GWP_确保准确的称量结果.pdf
- GZHG1406023905OT.pdf
- H J Liu, Y Q Ni and J M Ko.pdf
- Growth of non-necrotic tumours in the presence and absence of inhibitors.pdf
- H. A comparative study of four language identification systems.pdf
- GSM_L3_L6___Schematic_v10_2005.pdf
- h6340-powerpath-ve-for-vmware-vsphere-wp.pdf
- Hadoop数据收集与入库系统Flume与Sqoop.pdf
- Guidelines for the management of traumatic dental injuries. II. Avulsion of permanent teeth.pdf
- HADROPRODUCTION OF CHARM AND BEAUTY a.pdf
最近下载
- 小学研究课题立项申报:基于小学生高阶思维发展的课堂微项目活动设计研究.docx
- 网站安全等级保护--应急预案.docx
- 输送带发展前景分析.pptx
- IPC-6018c,6018cs,6017,6016,6015,6013d,6012e,ds,da 英文资料分享.pdf
- 高中数学公式(经典).doc VIP
- 顶管施工测量方案.doc
- 2024年度医院中医肛肠外科科带教计划课件.pptx
- 全国青少年劳动技能与智能设计大赛赛题与评价标准.PDF
- 2021-2022学年福建省宁德市校际联盟八年级(上)第一次月考英语试卷(附答案详解).docx VIP
- 2023年(最全版)二级建造师考试真题及参考答案.docx
文档评论(0)