日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

一个关于linux文件预读机制问题

發布時間:2025/6/17 linux 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个关于linux文件预读机制问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一個關于linux文件預讀機制問題

曾經,有人問我這樣一個問題:

一個Native 程序 mmap 了一個文件,如果什么都不讀 RSS是0,但是讀一個字節,RSS就變成64k,這個在哪兒能控制大小?
mmap不同大小,這個讀一個字節的申請的物理也不同,貌似跟文件大小有關系,不過這個應該可以配置吧?

其實:

我的回答如下:
讀取文件,還與預讀機制有關系,在讀取文件時,預讀機制會多讀一些。物理內存以頁為單位。 讀取文件時,會讀取到頁高速緩存中。內核代表進程多讀取一些,預讀機制跟幾個參數有關。參見《深入理解linux內核》第三版16.1. Reading and Writing a File、16.1.2. Read-Ahead of Files
struct file_ra_state
open.c (fs): file_ra_state_init(&f->f_ra, f->f_mapping->host->i_mapping);
在sys目錄, find . | grep -i read_ahead_kb 可以找到read_ahead的大小配置,與具體塊設備有關有關。
blk-sysfs.c
static struct queue_sysfs_entry queue_ra_entry = {
.attr = {.name = "read_ahead_kb", .mode = S_IRUGO | S_IWUSR },
.show = queue_ra_show,
.store = queue_ra_store,
};

更詳細的內容請參見我的視頻課程:《深入linux內核》
https://edu.51cto.com/course/17155.html

另外我的相關培訓視頻請看:
歡迎觀看我發布的各個課程: https://edu.51cto.com/lecturer/8896847.html

轉載于:https://blog.51cto.com/8906847/2373742

總結

以上是生活随笔為你收集整理的一个关于linux文件预读机制问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。