Linux基礎(第七周)
使用sysctl -a查看所有內核參數
proc/sys/net/core/wmem_max
最大socket寫buffer,可參考的優化值:873200
/proc/sys/net/core/rmem_max
最大socket讀buffer,可參考的優化值:873200
/proc/sys/net/ipv4/tcp_wmem
TCP寫buffer,可參考的優化值: 8192 436600 873200
/proc/sys/net/ipv4/tcp_rmem
TCP讀buffer,可參考的優化值: 32768 436600 873200
/proc/sys/net/ipv4/tcp_mem
同樣有3個值,意思是:
net.ipv4.tcp_mem[0]:低於此值,TCP沒有內存壓力.
net.ipv4.tcp_mem[2]:高於此值,TCP拒絕分配socket.
上述內存單位是頁,而不是字節.可參考的優化值是:786432 1048576 1572864
/proc/sys/net/core/netdev_max_backlog
進入包的最大設備隊列.默認是300,對重負載服務器而言,該值太低,可調整到1000
/proc/sys/net/core/somaxconn listen()的默認參數,掛起請求的最大數量.默認是128.對繁忙的服務器,增加該值有助於網絡性能.可調整到256.
nginx定義的NGX_LISTEN_BACKLOG默認為511,所以有必要調整這個值。
/proc/sys/net/core/optmem_max
socket buffer的最大初始化值,默認10K
/proc/sys/net/ipv4/tcp_max_syn_backlog
進入SYN包的最大請求隊列.默認1024.對重負載服務器,可調整到2048
/proc/sys/net/ipv4/tcp_retries2 TCP失敗重傳次數,默認值15,意味著重傳15次才徹底放棄.可減少到5,盡早釋放內核資源.
2、如何通過/proc查看top中展示的進程狀態
a.首先運行top程序,找出top對應的pid
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2056 haldaemo 20 0 39160 5436 4436 S 0.3 0.5 0:31.44 hald
23038 root 20 0 15032 1240 928 R 0.3 0.1 0:00.18 top
b.然後使用cat /proc/23038目錄
[[email protected] ~]# ls /proc/23038
attr clear_refs cpuset fd loginuid mounts numa_maps pagemap schedstat stat task
autogroup cmdline cwd fdinfo maps mountstats oom_adj personality sessionid statm wchan
auxv comm environ io mem net oom_score root smaps status
cgroup coredump_filter exe limits mountinfo ns oom_score_adj sched stack syscall
3、分別用while、for循環檢測10.0.0.1/24網段存活的IP地址
#!/bin/bash
hostping () {
if ping -w 1 $1 &> /dev/null;then
echo "$1 is up."
else
echo "$1 is down."
fi
}
declare -i host=1
while [ $host -lt 255 ];do
hostping 10.0.0.$host
let host++
done
for I in {1..254};do
hostping 10.0.0.$I
done
4、說明initrd的作用
a) 內核啟動時加載 initrd img, mount 為 /
b) 依 /linuxrc 的指令執行, 一般有掃描系統硬件,從當前文件系統中找到驅動安裝之.
c) 掛載系統中真正的 /
Linux基礎(第七周)