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) 挂载系统中真正的 /