linux 了解vm.dirty_background_ratio和vm.dirty_ratio的触发点

xdnvmnnf  于 2023-04-05  发布在  Linux
关注(0)|答案(1)|浏览(185)

我们使用Prometheus节点导出器来监控我们的系统
它包含node_memory_Dirty_bytesnode_memory_MemAvailable_bytes
那么,是否可以说当node_memory_Dirty_bytes / node_memory_MemAvailable_bytes * 100超过vm.dirty_background_ratio时,后台刷新器就会运行?
类似地,当它exeeeds vm.dirty_ratio时,所有的writers都会阻塞吗?
其他一些文档说它不仅仅是可用字节

dirty_background_ratio

Contains, as a percentage of total available memory that contains free pages and reclaimable pages, the number of pages at which the background kernel flusher threads will start writing out dirty data.

所以这里说可用=免费+可回收页面
那么公式是否会变为
node_memory_Dirty_bytes / (node_memory_MemFree_bytes + node_memory_KReclaimable_bytes + node_memory_SReclaimable_bytes ) * 100

5uzkadbs

5uzkadbs1#

您如何观察“写”?脏页 * 可能 * 由于多种原因而被写回:
1.超过了水印vm.dirty_ratio/dirty_background_ratio(或它们的bytes等效值),内核开始通过将脏页刷新到磁盘来异步或同步回收内存。
1.脏页比vm.dirty_writeback_centisecs旧,也会被后台刷新线程写回。这可以防止脏页在磁盘上停留太久,否则停电可能会导致大量数据丢失。
1.页面本身通过syscall进行fsync()艾德,syscall是一种按需同步写回操作。
10%的水印没有被击中可能被认为是一件好事,因为I/O的速率是健康的,并且没有被磁盘瓶颈。

参考资料

相关问题