Linux基础(第七周)

1、列举常见的内核参数以及参数的意义
使用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[1]:在此值下,进入内存压力阶段.
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
2012 root 20 0 187m 4580 3044 S 0.3 0.5 5:00.70 cupsd
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目录
        [root@centos-6 ~]# 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) 挂载系统中真正的 /

猜你喜欢

转载自blog.51cto.com/7005084/2389504
今日推荐