文件系统
文章平均质量分 85
Robin.Yin
一只勤勉的小虫,如痴如醉地沉迷于书卷,孜孜不倦地咀嚼着文字-书虫
展开
-
Linux writeback机制
Linux 采用内存页来缓存磁盘文件内容,从而提高系统整体IO访问性能,这就是我们熟知的pagecache机制,对于进程的一次写文件操作,内核只是简单的把修改写到内存,并把页面标记为脏页,然后直接返回,具体的回写操作,由内核周期性的启动线程来完成,这个我们称为writeback机制。1 脏页的产生修改文件内容和属性都会产生脏页,当进程调用write进行写操作时,最终会通过set_page_dirty函数标记脏页,并唤醒内核后台回写线程。如果进程只写了page中的一部分,是否有必要回写整个页了?当原创 2021-11-29 16:14:19 · 5680 阅读 · 2 评论 -
linux iostat统计原理
1.diskstats统计io统计主要读取/proc/diskstats节点rd_ios:merge后读操作的次数rd_merges合并读操作的次数。如果两个读操作读取相邻的数据块时,可以被合并成一个,rd_sectors读取的扇区数量。d_ticks 读操作消耗的时间(以毫秒为单位)。每个读操作从__make_request()开始计时,到__blk_mq_end_request()为止,包括了在队列中等待的时间。wr_ios:merge写操作的次数。wr_merges:合并写操作原创 2021-07-06 23:05:31 · 1348 阅读 · 0 评论 -
Linux 块设备之bio结构体
当文件系统准备好数据之后,就会调用submit_bio提交一个IO请求,这里主要介绍bio数据管理和分配.原创 2020-12-30 20:04:34 · 3011 阅读 · 1 评论 -
Linux 页高速缓存之buffer head
这里主要分析page, buffer_head与磁盘块之间关联。原创 2020-12-17 14:58:48 · 1971 阅读 · 1 评论 -
线程被IO卡住的原因wait_on_page_bit_killable
在内存trace中经常遇到线程uninterruptable sleep,而打出来的trace可以看到是如下:wait_on_page_bit_killable+0xb0/0xcc__lock_page_or_retry+0xb8/0xf4filemap_fault+0x4cc/0x630ext4_filemap_fault+0x34/0x48__do_fault+0x88/0x110handle_mm_fault+0x854/0xb68do_page_fault+0x2a4/0x3b4d原创 2020-12-14 21:14:15 · 3085 阅读 · 0 评论