linux内核 task cmd,linux内核
標(biāo)簽:
1. 常見內(nèi)核參數(shù)
內(nèi)核參數(shù)一般在/proc/sys 目錄中
臨時改變某個系統(tǒng)參數(shù)的值,可以用兩種方法來實現(xiàn),如
1) echo 1 > /proc/sys/net/ipv4/ip_forward
2) sysctl -w net.ipv4.ip_forward=1
以上兩種方法都可能立即開啟路由轉(zhuǎn)發(fā)功能,但如果系統(tǒng)重啟,或者重啟網(wǎng)絡(luò)所設(shè)置的值即會丟失,
永久保留配置,可以修改/etc/sysctl.conf文件
net.ipv4.ip_forward=0改為net.ipv4.ip_forward=1
sysctl命令的作用
-w 用此選項來改變一個sysctl設(shè)置 sysctl -w net.ipv4.ip_forward=1
-p 載入sysctl配置文件 -p后未指定路徑,則載入 /etc/sysctl.conf
常用參數(shù)(0表示關(guān)閉,1表示開啟)
net.ipv4.tcp_syncookies = 1 默認(rèn)1
是否打開SYN Cookie功能,該功能可以防止部分SYN***
net.ipv4.ip_local_port_range= 1024 65535 默認(rèn)32768 60999
可用端口的范圍 修改成1024 65535 可提高并發(fā)連接數(shù)量
net.ipv4.tcp_fin_timeout =30 默認(rèn)60
tcp超時時間
net.ipv4.tcp_timestamps = 1 默認(rèn)1
TCP時間戳 服務(wù)器開啟,客戶端可關(guān)閉
net.ipv4.tcp_tw_recycle = 0 默認(rèn)0
快速回收處于TIME_WAIT狀態(tài)的socket,建議關(guān)閉
net.ipv4.tcp_tw_reuse = 1 默認(rèn)0
針對TIME-WAIT,做為客戶端可以啟用
net.ipv4.tcp_max_tw_buckets = 262144 默認(rèn)262144
針對TIME-WAIT,配置其上限
net.ipv4.tcp_max_orphans = 3276800 默認(rèn)16384
orphans的最大值
net.ipv4.tcp_max_syn_backlog = 819200 默認(rèn)128
增大SYN隊列的長度,容納更多連接
net.ipv4.tcp_keepalive_intvl = 30 默認(rèn)75
探測失敗后,間隔幾秒后重新探測
net.ipv4.tcp_keepalive_probes = 3 默認(rèn)9
探測失敗后,最多嘗試探測幾次
net.ipv4.tcp_keepalive_time = 1200 默認(rèn)7200
間隔多久發(fā)送1次keepalive探測包
net.netfilter.nf_conntrack_tcp_timeout_established = 600 默認(rèn)432000
設(shè)置 conntrack tcp 狀態(tài)的超時時間,如果系統(tǒng)出現(xiàn)下述異常時要考慮調(diào)整:ping: sendmsg: Operation not permitted
kernel: nf_conntrack: table full, dropping packet.
net.netfilter.nf_conntrack_max = 655350 默認(rèn)65535
設(shè)置 conntrack 的上限,如果系統(tǒng)出現(xiàn)下述異常時要考慮調(diào)整:
ping: sendmsg: Operation not permitted
kernel: nf_conntrack: table full, dropping packet.
net.core.netdev_max_backlog = 500000 默認(rèn)1000
網(wǎng)卡設(shè)備將請求放入隊列的長度
net.core.somaxconn = 65536 默認(rèn)128
已經(jīng)成功建立連接的套接字將要進入隊列的長度
net.core.rmem_default = 8388608 默認(rèn)值:212992
默認(rèn)的TCP數(shù)據(jù)接收窗口大小(字節(jié))
net.core.wmem_default = 8388608 默認(rèn)值:212992
默認(rèn)的TCP數(shù)據(jù)發(fā)送窗口大小(字節(jié))
net.core.rmem_max = 16777216 默認(rèn)值:212992
最大的TCP數(shù)據(jù)接收窗口大小(字節(jié))
net.core.wmem_max = 16777216 默認(rèn)值:212992
最大的TCP數(shù)據(jù)發(fā)送窗口大小(字節(jié))
net.ipv4.tcp_mem = 94500000 915000000 927000000 默認(rèn)值:94389 125854 188778
內(nèi)存使用的下限 警戒值 上限
net.ipv4.tcp_rmem = 4096 87380 16777216 默認(rèn)值:4096 87380 6291456
socket接收緩沖區(qū)內(nèi)存使用的下限 警戒值 上限
net.ipv4.tcp_wmem = 4096 16384 16777216 默認(rèn)值:4096 16384 4194304
socket發(fā)送緩沖區(qū)內(nèi)存使用的下限 警戒值 上限
net.ipv4.tcp_thin_dupack = 1 默認(rèn)值:0
收到dupACK時要去檢查tcp stream是不是 thin ( less than 4 packets in flight)
net.ipv4.tcp_thin_linear_timeouts = 1 默認(rèn)值:0
重傳超時后要去檢查tcp stream是不是 thin ( less than 4 packets in flight)
net.unix.max_dgram_qlen = 30000 默認(rèn)值:10
UDP隊列里數(shù)據(jù)報的最大個數(shù)
kernel.randomize_va_space = 1 默認(rèn)值:2
內(nèi)核的隨機地址保護模式
kernel.panic = 1 默認(rèn)值:0
內(nèi)核panic時,1秒后自動重啟
kernel.corepattern = core%e 默認(rèn)值:|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e
程序生成core時的文件名格式
kernel.sysrq = 0 默認(rèn)值:0
是否啟用sysrq功能
vm.min_free_kbytes=901120 默認(rèn)值:8039
保留內(nèi)存的最低值
vm.panic_on_oom=1 默認(rèn)值:0
發(fā)生oom時,自動轉(zhuǎn)換為panic
vm.min_free_kbytes=1048576 默認(rèn)值:45056
保留最低可用內(nèi)存
vm.swappiness=20 默認(rèn)值:60
數(shù)值(0-100)越高,越可能發(fā)生swap交換
fs.inotify.max_user_watches=8192000 默認(rèn)值:8192
inotify的watch數(shù)量
fs.aio-max-nr=1048576 默認(rèn)值:65536
aio最大值
fs.file-max = 1048575 默認(rèn)值:98529
文件描述符的最大值
(針對lvs,關(guān)閉網(wǎng)卡LRO/GRO功能
ethtool -k eth0 查看LRO/GRO當(dāng)前是否打開
ethtool -K eth0 lro off 關(guān)閉GRO
ethtool -K eth0 gro off 關(guān)閉GRO)
2.通過/proc查看top的進程狀態(tài)
進程運行時會生成目錄/proc/PID,里面記錄進程詳細(xì)狀態(tài),每個進程生成一個以pid為名的文件夾
[root@centos7 sudoers.d]#ll /proc/1
total 0
dr-xr-xr-x 2 root root 0 Dec 25 18:37 attr
-rw-r--r-- 1 root root 0 Dec 25 18:37 autogroup
-r-------- 1 root root 0 Dec 25 18:37 auxv
-r--r--r-- 1 root root 0 Dec 17 22:17 cgroup
--w------- 1 root root 0 Dec 25 18:37 clear_refs
-r--r--r-- 1 root root 0 Dec 17 22:17 cmdline
-rw-r--r-- 1 root root 0 Dec 17 22:17 comm
-rw-r--r-- 1 root root 0 Dec 25 18:37 coredump_filter
-r--r--r-- 1 root root 0 Dec 25 18:37 cpuset
lrwxrwxrwx 1 root root 0 Dec 25 18:37 cwd -> /
-r-------- 1 root root 0 Dec 17 22:17 environ
lrwxrwxrwx 1 root root 0 Dec 17 22:17 exe -> /usr/lib/systemd/systemd
dr-x------ 2 root root 0 Dec 25 18:37 fd
dr-x------ 2 root root 0 Dec 25 18:37 fdinfo
-rw-r--r-- 1 root root 0 Dec 25 18:37 gid_map
-r-------- 1 root root 0 Dec 25 18:37 io
-r--r--r-- 1 root root 0 Dec 25 18:37 limits
-rw-r--r-- 1 root root 0 Dec 17 22:17 loginuid
dr-x------ 2 root root 0 Dec 25 18:37 map_files
-r--r--r-- 1 root root 0 Dec 25 18:37 maps
-rw------- 1 root root 0 Dec 25 18:37 mem
-r--r--r-- 1 root root 0 Dec 15 15:54 mountinfo
-r--r--r-- 1 root root 0 Dec 25 18:37 mounts
-r-------- 1 root root 0 Dec 25 18:37 mountstats
dr-xr-xr-x 6 root root 0 Dec 25 18:37 net
dr-x--x--x 2 root root 0 Dec 25 18:37 ns
-r--r--r-- 1 root root 0 Dec 25 18:37 numa_maps
-rw-r--r-- 1 root root 0 Dec 25 18:37 oom_adj
-r--r--r-- 1 root root 0 Dec 25 18:37 oom_score
-rw-r--r-- 1 root root 0 Dec 24 18:58 oom_score_adj
-r--r--r-- 1 root root 0 Dec 25 18:37 pagemap
-r--r--r-- 1 root root 0 Dec 25 18:37 personality
-rw-r--r-- 1 root root 0 Dec 25 18:37 projid_map
lrwxrwxrwx 1 root root 0 Dec 17 22:18 root -> /
-rw-r--r-- 1 root root 0 Dec 25 18:37 sched
-r--r--r-- 1 root root 0 Dec 25 18:37 schedstat
-r--r--r-- 1 root root 0 Dec 17 22:17 sessionid
-rw-r--r-- 1 root root 0 Dec 25 18:37 setgroups
-r--r--r-- 1 root root 0 Dec 25 18:37 smaps
-r--r--r-- 1 root root 0 Dec 25 18:37 stack
-r--r--r-- 1 root root 0 Dec 17 22:17 stat
-r--r--r-- 1 root root 0 Dec 21 17:15 statm
-r--r--r-- 1 root root 0 Dec 17 22:17 status
-r--r--r-- 1 root root 0 Dec 25 18:37 syscall
dr-xr-xr-x 3 root root 0 Dec 25 18:37 task
-r--r--r-- 1 root root 0 Dec 25 18:37 timers
-rw-r--r-- 1 root root 0 Dec 25 18:37 uid_map
-r--r--r-- 1 root root 0 Dec 25 18:37 wchan
查看里面status文件會得到進程相關(guān)信息(與top類似)
[root@centos7 sudoers.d]#cat /proc/1/status
Name: systemd
Umask: 0000
State: S (sleeping)
Tgid: 1
Ngid: 0
Pid: 1
PPid: 0
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 128
Groups:
VmPeak: 256496 kB
VmSize: 191224 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 4208 kB
VmRSS: 3152 kB
RssAnon: 1524 kB
RssFile: 1628 kB
RssShmem: 0 kB
VmData: 148928 kB
VmStk: 132 kB
VmExe: 1320 kB
VmLib: 3716 kB
VmPTE: 116 kB
VmSwap: 124 kB
Threads: 1
SigQ: 1/4607
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 7be3c0fe28014a03
SigIgn: 0000000000001000
SigCgt: 00000001800004ec
CapInh: 0000000000000000
CapPrm: 0000001fffffffff
CapEff: 0000001fffffffff
CapBnd: 0000001fffffffff
CapAmb: 0000000000000000
Seccomp: 0
Cpus_allowed: ffffffff,ffffffff
Cpus_allowed_list: 0-63
Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
Mems_allowed_list: 0
voluntary_ctxt_switches: 50397
nonvoluntary_ctxt_switches: 3733
3. 分別用for和while 實現(xiàn)網(wǎng)段網(wǎng)址搜尋
實現(xiàn)192.168.0.0/24網(wǎng)段搜尋:
#!/bin/bash
for ip in {1..254} ;do
{
ping -c1 -w 1 192.168.0.$ip &>/dev/null && echo "192.168.0.$ip is success" ;
}&
done
wait
執(zhí)行結(jié)果
[root@centos7 ~]#bash ip_for.sh
192.168.0.1 is success
192.168.0.109 is success
192.168.0.108 is success
#!/bin/bash
declare -i ip=1
while [ $ip -le 254 ] ; do
{
ping -c1 -w 1 192.168.0.$ip &>/dev/null && echo "192.168.0.$ip is success" ;
}&
let ip++
done
wait
執(zhí)行結(jié)果
[root@centos7 ~]#bash ip_while.sh
192.168.0.1 is success
192.168.0.109 is success
192.168.0.108 is success
用{ }& wait 實現(xiàn)并發(fā)執(zhí)行提高效率
4.initrd作用
initrd 是boot loader initialized RAM disk,一般是壓縮過的。它存在的主要目的是在內(nèi)核啟動時加載它,安裝其中的驅(qū)動,掛載系統(tǒng)的根
解壓系統(tǒng)boot/文件下的initramfs-3.10.0-693.el7.x86_64.img文件
重命名為.gz文件
gunzip initramfs-3.10.0-693.el7.x86_64.gz
cpio -id < initramfs-3.10.0-693.el7.x86_64
查看解壓后文件
bin etc initramfs-3.10.0-693.el7.x86_64 lib64 root sbin sys tmp var
dev init lib proc run shutdown sysroot usr
從文件可以看出里面內(nèi)容很類似一個linux系統(tǒng)文件夾,initrd是在實際根文件系統(tǒng)可用之前掛載到系統(tǒng)中的一個初始根文件系統(tǒng)。initrd與內(nèi)核綁定在一起, 并作為內(nèi)核引導(dǎo)過程的一部分進行加載。內(nèi)核然后會將這個initrd文件作為其階段引導(dǎo)過程的一部分來加載模塊,這樣才能在以后的引導(dǎo)過程中使用真正的文 件系統(tǒng),并掛載實際的根文件系統(tǒng)。
標(biāo)簽:
來源: http://blog.51cto.com/6289984/2337047
總結(jié)
以上是生活随笔為你收集整理的linux内核 task cmd,linux内核的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何设置坐标原点值_氨气检测仪电化学原理
- 下一篇: 关闭防火墙_从零开始学Linux运维|0