第八周作业

1、列举常见内核参数以及参数的意义

关闭ipv6
net.ipv6.conf.all.disable_ipv6 = 1

关闭路由转发
net.ipv4.ip_forward = 0

最大限度使用物理内存
vm.swappiness = 0

ARP缓存的存活时间
net.ipv4.neigh.default.gc_stale_time = 120

ARP回应的级别
net.ipv4.conf.all.arp_announce = 2

SYN重试次数
net.ipv4.tcp_syn_retries = 2

SYNACK重试次数
net.ipv4.tcp_synack_retries = 2

SYN_RECV状态队列的数量
net.ipv4.tcp_max_syn_backlog = 65535

网口接收数据包比内核处理速率快状态队列的数量
net.core.netdev_max_backlog = 65535

系统能处理的不属于任何进程的socket数量
net.ipv4.tcp_max_orphans = 65535

tcp发送keepalive消息的频度
net.ipv4.tcp_keepalive_time = 600

tcp发送keepalive探测确定连接已经断开的次数
net.ipv4.tcp_keepalive_probes = 3

探测消息发送的频率
net.ipv4.tcp_keepalive_intvl = 15

系统同时保持TIME_WAIT socket的数量
net.ipv4.tcp_max_tw_buckets = 36000

开启TIME-WAIT sockets重用
net.ipv4.tcp_tw_reuse = 1

TCP/UDP协议允许使用的本地端口号
net.ipv4.ip_local_port_range = 1024 65000

每个端口最大的监听队列的数量
net.core.somaxconn = 65535

关闭tcp的连接传输的慢启动
net.ipv4.tcp_slow_start_after_idle = 0

关闭Magic System Request Key
kernel.sysrq = 0

2、如何通过/proc查看top中展示的状态

cat /proc/[pid]/status查看进程状态

 

3、分别用while、for循环检测10.0.0.1/24网段存活的IP地址

for循环:

#!/bin/bash
#
declare -i a=0
   for a in {1..255};do
       if ping -w 2 -c 2 10.0.0.$a &>/dev/null;then
            echo "10.0.0.$a is up"
      else
         echo "10.0.0.$a is down"
      fi
done

while循环:

#!/bin/bash
#
declare -i a=0
declare -i b=0
declare -i c=0

while [ $a -le 255 ];do
if ping -w 2 -c 2 10.0.0.$a &>/dev/null;then
echo "10.0.0.$a is up"
else
echo "10.0.0.$a is down"
fi
let a++
done

 

4、说明initrd的作用

Initrd ramdisk或者initrd是指一个临时文件系统,它在启动阶段被Linux内核调用。initrd主要用于当“根”文件系统被挂载之前,进行准备工作。
同其他Unix系统一样,Linux操作系统首先要将内核引导入内存。内核驻留于操作系统与应用程序的整个活动周期,其中应用程序(软件)在“用户空间”内运行,位于内核控制之下。
为了使加载存储器最小化,一些核心 Linux 程序转化成模块形式,可以动态加载系统中。
initrd 系统中的文件在引导阶段可以被核心访问,里面的内容会被挂载成一个 loop 类型的文件,早期是将 initrd 放在小的软盘片内。initrd 通常被压缩成 gzip 类型,在引导的时候由 bootloader(LILO, GRUB) 来告知核心 initrd 的位置。不过在2.6版本内核之后出现了initramfs,它和initrd实现同样的功能,但是它基于一种cpio档,无须挂载就可以展开成一个文件系统,因此省去了各种相关的权限,在自动化方面更方便了。

posted on 2019-02-13 16:14  向北00  阅读(87)  评论(0编辑  收藏  举报

导航