Linux調優(內存,CPU)

1、相關概念簡介

  • system call:系統調用
  • time slice:cpu時間片
  • O(1):Linux系統進程調度器
  • page frame:分頁
  • RSS:常駐內存集,沒法被頁面化的數據
  • MMU:內存管理單元,維護線性地址空間和物理地址空間的映射表
  • TLB:轉換後緩衝器
  • huge page:大頁
  • NUMA:非一致內存訪問,有多顆CPU,每顆CPU有本身的內存段,每段叫作一個node,建議進程作CPU親緣性綁定

2、CPU內存調優

  • 調進程與CPU的親緣性
# taskset -p mask pid
# taskset mask -- program
# taskset -c 0,,2-7 -- myprogram
# taskset -p -c 1 17947  #將pid爲17947的進程綁定至第2顆CPU上,重啓失效
  • 查看進程當前運行在哪顆CPU上
# ps axo psr,pid,cmd
  • cpu中斷統計
# cat /proc/interrupts
  • numactl:對MUMA策略管理
  • 調整進程優先級:nice, renice
  • 隔離CPU,被隔離的CPU不會處理中斷
# vim /etc/grub.conf
    kernel ...... lsolcpus=1,2,3...
  • 調度類別:
SCHED_FIFO [0-99]
    chrt -f [1-99] /path/to/program arguments
SCHED_RR
    chrt -f [1-99] /path/to/program arguments
SCHED_NORMAL [100-139]
    nice,renice
  • 0 - 139
1-99:實時優先級
100-139:動態優先級
  • 性能監控工具
htop
dstat
glances
sysdig
sar -P ALL 1 2
vmstat 1 5
iostat -c 1
  • 配置大頁
vm.nr_hugepages = 10
  • 當前系統打開最大文件數
fs.file-max = 8192
  • 當前系統因此異步io容許的最大事件數
fs.aio-max-nr = 65535
  • OOM可調參數
vm.panic_on_oom = 0
/proc/pid/oom_adj  [-16-15] #數字越高,被殺死的值越大,若是是-17則這個進程是無懈可擊的

3、內存總結

nr_hugepages
swapiness
overcommit_memory
相關文章
相關標籤/搜索