Linux ⽹络协议栈是根据 TCP/IP 模型来实现的, TCP/IP 模型由应⽤层、传输层、⽹络层和⽹络接⼝层,共四层组成,每⼀层都有各⾃的职责。
基本指标:
其他指标:
可以使⽤ ifconfig 或者 ip 命令来查看
ifconfig 属于 net-tools 软件包, ip 属于iproute2 软件包,我的印象中 net-tools 软件包没有⼈继续维护了,⽽ iproute2 软件包是有开发者依然在维护,所以更推荐你使⽤ ip ⼯具。
使⽤这两个命令,来查看⽹⼝ eth0 的配置等信息

信息解读:
errors 表示发⽣错误的数据包数,⽐如校验错误、帧同步错误等;
dropped 表示丢弃的数据包数,即数据包已经收到了 Ring Buffer(这个缓冲区是在内核内存中,更具体⼀点是在⽹卡驱动程序⾥),但因为系统内存不⾜等原因⽽发⽣的丢包;
overruns 表示超限数据包数,即⽹络接收/发送速度过快,导致 Ring Buffer 中的数据包来不及处理,⽽导致的丢包,因为过多的数据包挤压在 Ring Buffer,这样 Ring Buffer 很容易就溢出了;
carrier 表示发⽣ carrirer 错误的数据包数,⽐如双⼯模式不匹配、物理电缆出现问题等;
collisions 表示冲突、碰撞数据包数;
可以使⽤ netstat 或者 ss ,这两个命令查看 socket、⽹络协议栈、⽹⼝以及路由表的信息。
如果在⽣产环境中要查看这类信息的时候,尽量不要使⽤ netstat 命令,因为它的性能不好,在系统⽐较繁忙的情况下,如果频繁使⽤ netstat 命令则会对性能的开销雪上加霜,所以更推荐你使⽤性能更好的 ss 命令。
可以使⽤ sar 命令当前⽹络的吞吐率和 PPS,⽤法是给 sar 增加 -n 参数就可以查看⽹络的统计信
息,⽐如:

要分析⽇志的时候,先⽤ ls -lh 命令查看⽇志⽂件的⼤⼩,如果⽇志⽂件⼤⼩⾮常⼤,最好不要在
线上环境做。
如果⽇志⽂件数据量太⼤,你直接⼀个 cat 命令⼀执⾏,是会影响线上环境,加重服务器的负载,严重的话,可能导致服务器⽆响应
当发现⽇志很⼤的时候,我们可以使⽤ scp 命令将⽂件传输到闲置的服务器再分析, scp 命令使⽤⽅式如下图:
cat 命令是⽤来查看⽂件内容的,但是⽇志⽂件数据量有多少,它就读多少,很显然不适⽤
⼤⽂件。
对于⼤⽂件,⽤ less 命令去读⽂件⾥的内容,因为 less 并不会加载整个⽂件,⽽是按需加载,先是输出⼀⼩⻚的内容,当你要往下看的时候,才会继续加载。