1. 程式人生 > >Linux內核參數優化記錄

Linux內核參數優化記錄

cgroup 物理內存 log linux內核 默認 file size 增加 lin

//fs.file-max       最大打開文件數
//fs.nr_open=20480000           單個進程允許打開的文件句柄上限

//信號量及共享內存,可以使用ipcs -l來獲取
//kernel.sem        信號量: 每個信號集中最大信號量數目 系統範圍最大信號量數目 每個信號發生時的最大系統操作數 系統範圍內最大信號集總數目 第一列*第四列=第二列
//                  512G好配置:4096 2147483647 2147483646 512000  1G差配置:250 512000 100 2048

//kernel.shmall     控制全部共享內存頁數。系統所有共享內存段相加的大小限制,建議為內存的80%,例如:64G *80%/4k 即是頁數
//kernel.shmmax 單個共享內存段大小,建議為內存的一半,9.2之後對共享內存使用降低了,單位是byte //kernel.shmmni 全部共享內存段的總個數,缺省值為4096就夠了,參考的是819200,單個共享段最小大小? //臟頁刷新 //vm.dirty_background_bytes 40960000,系統臟頁達到這個值,系統後臺刷臟頁調度進程自動將dirty_expire_centisecs/100秒前的臟頁刷到磁盤,建議設置為內存的2%? //vm.dirty_expire_centisecs 比這個值老的臟頁,將被刷到磁盤,3000表示30秒 //vm.dirty_ratio = 95 如果單個進程產生的臟數據到達系統整體內存的百分比,此時進程自行把臟數據寫回磁盤.
// 如果系統進程刷臟頁太慢,使得系統臟頁超過內存 95 % 時,則用戶進程如果有寫磁盤的操作(如fsync, fdatasync等調用),則需要主動把系統臟頁刷出。 // 有效防止用戶進程刷臟頁,在單機多實例,並且使用CGROUP限制單實例IOPS的情況下非常有效 //vm.dirty_background_ratio 所有全局系統進程的臟頁數量到達系統整體內存的百分比,此時觸發pdflush進程把臟數據寫回磁,默認值為10,註意這裏是全局進程的臟頁 //Linux對大部分申請內存的請求都回復"yes",以便能跑更多更大的程序。因為申請內存後,並不會馬上使用內存。這種技術叫做Overcommit
//vm.dirty_writeback_centisecs = 100 pdflush(或其他)後臺刷臟頁進程的喚醒間隔,缺省值為500,100表示1秒。 //vm.overcommit_memory = 0 在分配內存時,允許少量over malloc, 如果設置為 1, 則認為總是有足夠的內存,內存較少的測試環境可以使用 1 . // 0, 表示內核將檢查是否有足夠的可用內存供應用進程使用;如果有足夠的可用內存,內存申請允許;否則,內存申請失敗,並把錯誤返回給應用進程。 // 1, 表示內核允許分配所有的物理內存,而不管當前的內存狀態如何。當kernel發現內存使用率接近100%時,就觸發OOM,殺掉一些用戶態進程,釋放內存 // 2, 用戶一次申請的內存大小不允許超過可用內存的大小。表示內核允許分配超過所有物理內存和交換空間總和的內存(參照overcommit_ratio)。 //vm.overcommit_ratio = 90 默認50,當overcommit_memory = 2 時,用於參與計算允許指派的內存大小。系統可分配內存=交換空間+物理內存*overcommit_ratio/100,超過這個值就拒絕這次內存申請 //vm.swappiness = 0 關閉交換分區 //vm.zone_reclaim_mode = 0 禁用 numa, 或者在vmlinux中禁止. //nr_pdflush_threads 當前正在運行的pdflush進程數量,在I/O負載高的情況下,內核會自動增加更多的pdflush進程。缺省值2,只讀 //vm.extra_free_kbytes = 4096000 //vm.min_free_kbytes = 2097152 Linux VM最低保留多少空閑內存(Kbytes) //如果是小內存機器,以上兩個值不建議設置 //vm.nr_hugepages = 66536 建議shared buffer設置超過64GB時 使用大頁,頁大小 /proc/meminfo Hugepagesize //vm.lowmem_reserve_ratio = 1 1 1   對於內存大於64G時,建議設置,否則建議默認值 256 256 32

未完待續:

參考:

https://www.cnblogs.com/ywcz060/p/5566086.html

https://github.com/digoal/blog/blob/master/201611/20161121_01.md?spm=a2c4e.11153940.blogcont80563.13.5c96100aDpE202&file=20161121_01.md#postgresql-on-linux-最佳部署手冊---珍藏級

Linux內核參數優化記錄