IP地址练习和tcpdump、僵尸进程、vmstat简介

1、100.0.0.16/28 对应网段的网关地址、广播地址、可分配IP地址范围

网关:100.0.0.17
广播地址:100.0.0.31
可分配IP地址范围:100.0.0.18~30

2、使用man手册学习tcpdump的使用

tcpdump - dump traffic on a network
tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ]

   OPTIONS

   -A     以ASCII格式打印每个数据包(减去其链接级别标题)。

   -b     以ASDOT表示法而不是ASPLAIN打印BGP数据包中的AS编号符号。

   -B buffer_size
   --buffer-size=buffer_size
           将操作系统捕获缓冲区大小设置为buffer_size,单位为KiB(1024字节)。

   -c count <数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作。

   -C file_size
           在将原始数据包写入保存文件之前,请检查该文件是否为
           实际上大于file_size

   -d     把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。

   -dd    把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。

   -ddd   把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。

   -D
   --list-interfaces
           打印系统上可用的网络接口列表

   -f     用数字显示网际网络地址。

   -F file<表达文件> 指定内含表达方式的文件。

   -G rotate_seconds
          如果指定,则每次旋转使用-w选项指定的转储文件
           rotate_seconds秒。 Savefiles将具有-w指定的名称
           其中应包括strftime(3)定义的时间格式。 如果没有时间
           指定格式后,每个新文件都会覆盖前一个文件。
   -h
   --help 打印tcpdump和libpcap版本字符串,打印用法消息,然后
           退出。

   --version
          这是打印数据包时的默认值,而不是将数据包保存到a
           ``savefile''如果数据包被打印到终端而不是
           文件或管道。

   -j tstamp_type
   --time-stamp-type=tstamp_type
          将捕获的时间戳类型设置为tstamp_type。

   -J
   --list-time-stamp-types
          列出接口支持的时间戳类型并退出。

   --time-stamp-precision=tstamp_precision
          捕获时,将捕获的时间戳精度设置为
          tstamp_precision。 

   -K
   --dont-verify-checksums
         请勿尝试验证IP,TCP或UDP校验和。 这很有用
           在硬件中执行部分或全部校验和计算的接口

   -l    使用标准输出列的缓冲区。

   -L
   --list-data-link-types
          在指定模式下列出接口的已知数据链接类型,
           并退出。 

   -m module
        从文件模块加载SMI MIB模块定义。 可以使用此选项
           多次将几个MIB模块加载到tcpdump中。

   -M secret
          使用secret作为共享密钥来验证TCP段中的摘要
           使用TCP-MD5选项(RFC 2385)(如果存在)。

   -n     不把主机的网络地址转换成名字。

   -T type<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型。

   -t     在每列倾倒资料上不显示时间戳记。

   -tt    在每列倾倒资料上显示未经格式化的时间戳记。

   -ttt   在当前行和上一行之间打印delta(微秒分辨率)
           在每个转储线上。

   -tttt  在当前行和上一行之间打印delta(微秒分辨率)
           在每个转储线上。

   -ttttt 打印当前和第一行之间的增量(微秒分辨率)
           每条转储线。

   -u    打印未解码的NFS句柄。

   -U
   --packet-buffered
          如果未指定-w选项,请进行打印的数据包输出
           默认情况下,在编译时也可以启用此行为。

3、详细叙述僵尸进程产生的原因以及危害

僵尸进程:前文已经对僵尸进程的定义进行了说明。那么defunct进程只是在process table(进程表项)里有一个记录,其他的资源没有占用,除非你的系统的process个数已经快超过限制了,zombie进程不会有更多的坏处。

产生原因:在子进程终止后到父进程调用wait()前的时间里,子进程被称为zombie;
具体:
a. 子进程结束后向父进程发出SIGCHLD信号,父进程默认忽略了它
b. 父进程没有调用wait()或waitpid()函数来等待子进程的结束
c. 网络原因有时会引起僵尸进程;

危害:僵尸进程会占用系统资源,如果很多,则会严重影响服务器的性能;
孤儿进程不会占用系统资源,最终是由init进程托管,由init进程来释放;

4、详细说明vmstat输出结果的含义

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 621828 66224 209420 0 0 17 1 15 23 0 0 100 0 0

procs:
r:等待运行的进程个数;CPU上等待运行的任务的队列长度;
b:处于不可中断睡眠态的进程个数;被阻塞的任务队列的长度;

memory:
swpd:交换内存使用总量;
free:空闲的物理内存总量;
buffer:用于buffer的内在总量;
cache:用于cache的内存总量;

swap:
si:数据进入swap中的数据速率(kb/s)
so:数据离开swap的速率(kb/s)

io:
bi:从块设备读入数据到系统的速度(kb/s)
bo:保存数据至块设备的速率(kb/s)

system
in:interrupts,中断速率;
cs:context switch,上下文切换速率;

CPU
us:user space
sy:system
id:idle
wa:wait
st:stolen

你可能感兴趣的:(IP地址练习和tcpdump、僵尸进程、vmstat简介)