當請求分配記憶體時,如果有足夠的記憶體,則分配成功。如果沒有,則要阻塞,釋放記憶體,再來分配記憶體。原子請求不能被阻塞,如果分配不到,則失敗。核心為了盡量避免原子請求失敗,預留了乙個頁池框,在記憶體不足時使用。這個頁池框的大小就是min_free_kbytes。
這段引自《深入理解linux核心(第三版)(中文版)》page302
在init_per_zone_wmark_min()
(\linux\mm\page_alloc.c) 中進行初始化,dump_stack
()的結果:
[0.053007
][init_per_zone_wmark_min 6792
] min_free_kbytes:
1024.
[0.053067][
](unwind_backtrace) from [
](show_stack+
0x10
/0x14)[
0.053083][
](show_stack) from [
](dump_stack+
0x84
/0x98)[
0.053100][
](dump_stack) from [
](init_per_zone_wmark_min+
0x2c
/0x13c)[
0.053127][
](init_per_zone_wmark_min) from [
](do_one_initcall+
0x54
/0x190)[
0.053153][
](do_one_initcall) from [
](kernel_init_freeable+
0x158
/0x1e4)[
0.053180][
](kernel_init_freeable) from [
](kernel_init+
0x8/
0x114)[
0.053203][
](kernel_init) from [
](ret_from_fork+
0x14
/0x2c)[
0.053222
][init_per_zone_wmark_min 6797
] nr_free_buffer_pages:
162930.
[0.053233
][init_per_zone_wmark_min 6798
] lowmem_kbytes:
651720.
[0.053245
][init_per_zone_wmark_min 6802
] new_min_free_kbytes:
3229.
[0.053256
][init_per_zone_wmark_min 6803
] user_min_free_kbytes:-1.
[0.053267
][init_per_zone_wmark_min 6808
] min_free_kbytes:
3229.
[0.053285
][init_per_zone_wmark_min 6822
] min_free_kbytes:
3229.
**流程就是:
kernel_init -- kernel_init_freeable -- do_one_initcall -- init_per_zone_wmark_min
int min_free_kbytes =
1024
;//初始值設為1024
int user_min_free_kbytes =-1
;int watermark_scale_factor =10;
int __meminit init_per_zone_wmark_min
(void
)else..
....
}
Springboot中的定時任務初初初初級
最近剛剛接觸sringboot中的定時任務寫了乙個最最最初階版的定時任務,作如下記錄 首先在啟動類中新增註解 enablescheduling然後就可以直接通過註解 scheduled編寫我們的定時任務了 service public class timeservice 其中,corn值代表每分鐘執...
MySQL初初初入門筆記 2020 6 25
寥寥幾筆 現在是累計什錦式學習mysql部分的第2天 現在把最前頭的記錄都一起傳上來,雖然現在寫的這一塊還是太簡單了,但畢竟配置環境什麼的還是花時間,於是寫一篇記錄一下粗略的學習過程 現在越學越感覺對於相關知識的學習是由 簡單,繁雜 到 深入,簡約 的乙個過程.所以還是有點耐心吧哈哈 資料庫db 資...
初初初級演算法
給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3 ...