目前互联网公司的服务器一般采用Linux系统,同时,为了实时监控服务器的健康状况,我们通常编写Shell脚本或Python脚本来监控测试服务器的各项指标,包括CPU、内存、IO等指标,本期将介绍Linux...中常见的监控指令。...CPU 说到监控CPU,目前主要是监控CPU的使用率,以及每一个进程占用CPU资源,Linux系统中主要使用 top、vmstat、pstree 三个命令。...Mem 内存主要可以从整个系统内存情况、各个进程对应内存使用情况和每个进程内存详细情况三个纬度进行监控,其中整个系统内存情况可以使用 vmstat 和 free 两个指令,每个进程对应内存情况可以使用...一般情况下,我们看内存用了多少,实际就是关注这个值)和共享内存的大小(包括共享内存、共享库占用的大小等)。
根据设备查看不同的性能指标,可分如下几点 一、内存监控 1、free命令 2、vmstat命令 二、CPU监控 1、top命令 2、mpstat命令 三、网络监控 1、sar命令 2、netstat...命令 3、tcpdump命令 4、IPTraf命令 四、磁盘监控 1、df命令 2、iostat命令 3、iotop命令 4、lsof命令 五、进程监控 1、atop命令 2、htop命令 3...、ps命令 六、系统监控全能工具 1、glances工具 2、dstat工具 总结: 对于上面的命令,有些是Linux系统自带的,你可以直接执行。
系统也提供了各个网络协议的丢包信息,可以使用 netstat -s 命令查看,加上 --udp 可以只看 UDP 相关的报文数据: # netstat -s -u IcmpMsg: InType0...Linux 系统丢包 linux 系统丢包的原因很多,常见的有:UDP 报文错误、防火墙、UDP buffer size 不足、系统负载过高等,这里对这些丢包原因进行分析。...如果遇到丢包比率非常大的情况,请先检查防火墙规则,保证防火墙没有主动 drop UDP 报文。 UDP buffer size 不足 linux 系统在接收报文之后,会把报文保存到缓存区中。...---- 总结 UDP 本身就是无连接不可靠的协议,适用于报文偶尔丢失也不影响程序状态的场景,比如视频、音频、游戏、监控等。对报文可靠性要求比较高的应用不要使用 UDP,推荐直接使用 TCP。...当然,也可以在应用层做重试、去重保证可靠性 如果发现服务器丢包,首先通过监控查看系统负载是否过高,先想办法把负载降低再看丢包问题是否消失 如果系统负载过高,UDP 丢包是没有有效解决方案的。
最近工作中遇到某个服务器应用程序 UDP 丢包,在排查过程中查阅了很多资料,总结出来这篇文章,供更多人参考。 在开始之前,我们先用一张图解释 linux 系统接收网络报文的过程。...此外,linux 系统也提供了各个网络协议的丢包信息,可以使用 netstat -s 命令查看,加上 --udp 可以只看 UDP 相关的报文数据: [root@holodesk02 GOD]# netstat...Linux 系统丢包 linux 系统丢包的原因很多,常见的有:UDP 报文错误、防火墙、UDP buffer size 不足、系统负载过高等,这里对这些丢包原因进行分析。...总结 UDP 本身就是无连接不可靠的协议,适用于报文偶尔丢失也不影响程序状态的场景,比如视频、音频、游戏、监控等。对报文可靠性要求比较高的应用不要使用 UDP,推荐直接使用 TCP。...当然,也可以在应用层做重试、去重保证可靠性 如果发现服务器丢包,首先通过监控查看系统负载是否过高,先想办法把负载降低再看丢包问题是否消失 如果系统负载过高,UDP 丢包是没有有效解决方案的。
前言 本文分享了Linux内核网络数据包发送在UDP协议层的处理,主要分析了udp_sendmsg和udp_send_skb函数,并分享了UDP层的数据统计和监控以及socket发送队列大小的调优。...Linux 内核会使用一个数组将 TOS 转换为优先级,后者会影响数据包如何以及何时从 qdisc 中发送出去。...是否再次被 cork 设置该 UDP flow 的一些参数,为 corking 做准备 将要发送的数据追加到现有数据 udp_sendmsg 代码继续向下看,就是这一逻辑: lock_sock(sk...接下来看看如何在 Linux 内核中监视和调优 UDP 协议层。 4....总结 本文重点分析了数据包在传输层(UDP协议)的发送过程,并进行了监控和调优,后面数据包将到达 IP 协议层,下次再分享,感谢阅读。
本系列文章1-4,来源于陈莉君老师公众号“Linux内核之旅” 1....前言 本文首先从宏观上概述了数据包发送的流程,接着分析了协议层注册进内核以及被socket的过程,最后介绍了通过 socket 发送网络数据的过程。 2....数据包发送宏观视角 从宏观上看,一个数据包从用户程序到达硬件网卡的整个过程如下: 使用系统调用(如 sendto,sendmsg 等)写数据 数据穿过socket 子系统,进入socket 协议族(protocol...(dest)); 该系统调用穿过Linux 系统调用(system call)层,最后到达net/socket.c中的这个函数: /* * Send a datagram to a given...sendmsg()函数作为分界点,处理逻辑从 AF_INET 协议族通用处理转移到具体的 UDP 协议的处理。 5. 总结 了解Linux内核网络数据包发送的详细过程,有助于我们进行网络监控和调优。
Linux 支持流量控制(traffic control)的功能,此功能允许系统管理员控制数据包如何从机器发送出去。流量控制系统包含几组不同的 queue system,每种有不同的排队特征。...可以将 qdisc 视为调度程序, qdisc 决定数据包的发送时间和方式。 Linux 上每个 device 都有一个与之关联的默认 qdisc。...return __dev_queue_xmit(skb, NULL); } EXPORT_SYMBOL(dev_queue_xmit); __dev_queue_xmit 才是干脏活累活的地方,我们一点一点来看:...UDP 协议层不设置此标志 ,因此 UDP 数据包永远不会将 ooo_okay 设置为非零值。...include/linux/netdevice.h: /* * Returns a Tx hash for the given packet when dev->real_num_tx_queues
在 Linux 上安装 Tcpdump 包含在多个 Linux 发行版中,因此你可能已经安装了它。...例如,在 CentOS 或 Red Hat Enterprise Linux 上,如下所示: $ sudo dnf install -y tcpdump Tcpdump 需要libpcap,这是一个用于网络数据包捕获的库...-vv for full protocol decode listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144...既然你能够捕获网络数据包,让我们探索一下这个输出的含义。 3. 理解输出格式 Tcpdump 能够捕获和解码许多不同的协议,例如 TCP、UDP、ICMP 等等。...tcpdump 最强大的功能之一是它能够使用各种参数过滤捕获的数据包,例如源和目标 IP 地址、端口、协议等。让我们看一些最常见的。 协议 根据协议过滤数据包,在命令行中指定协议。
现在很多人都在诟病Linux内核协议栈收包效率低,不管他们是真的懂还是一点都不懂只是听别人说的,反正就是在一味地怼Linux内核协议栈,他们的武器貌似只有DPDK。...非常清爽的一个图,这个图是 两个上下文接力处理协议栈收包逻辑的必然结果 ,让我们加入一些实际必须要考虑的问题后,我们会发现这幅图并不是那么清爽,然后再回过头看如何来优化。...然而,在2.6.25版本内核中,Linux协议栈的UDP收包路径,转而采用了两层锁的backlog队列机制,和TCP一样的逻辑: low_lock_lock(sk) { spin_lock(sk->higher_level_spin_lock...当然,Linux内核协议栈无法摆脱这两点问题,也就回答了本文的题目中的第一个问题, “Linux内核UDP收包为什么效率低?” 。 不同的上下文异步操作同一份数据,锁是必不可少的。...,这买卖代价太大,毕竟Linux内核并非专职收包的。
前言 Linux内核网络 UDP 协议层通过调用 ip_send_skb 将 skb 交给 IP 协议层,本文通过分析内核 IP 协议层的关键函数来分享内核数据包发送在 IP 协议层的处理,并分享了监控...出于讨论目的,我们假设 nf_hook 返回 1,表示调用者(在这种情况下是 IP 协议层)应该自己发送数据包。 3.2 目的(路由)缓存 dst 代码在 Linux 内核中实现协议无关的目标缓存。...监控: IP 层 8.1 /proc/net/snmp 这个文件包扩多种协议的统计,IP 层的在最前面,每一列代表什么有说明。 前面我们已经看到 IP 协议层有一些地方会更新计数器。...总结 Linux内核网络数据包发送时,主要用到 ip_send_skb、 ip_local_out、ip_output、ip_finish_output、ip_finish_output2、 dst_neigh_output...等函数,本文通过分析这些函数来分享Linux内核数据包发送在 IP 层的处理,并对 IP 层进行了数据监控。
现在很多人都在诟病Linux内核协议栈收包效率低,不管他们是真的懂还是一点都不懂只是听别人说的,反正就是在一味地怼Linux内核协议栈,他们的武器貌似只有DPDK。...两个上下文接力处理协议栈收包逻辑的必然结果 ,让我们加入一些实际必须要考虑的问题后,我们会发现这幅图并不是那么清爽,然后再回过头看如何来优化。...然而,在2.6.25版本内核中,Linux协议栈的UDP收包路径,转而采用了两层锁的backlog队列机制,和TCP一样的逻辑: low_lock_lock(sk) { spin_lock(sk->higher_level_spin_lock...当然,Linux内核协议栈无法摆脱这两点问题,也就回答了本文的题目中的第一个问题, “Linux内核UDP收包为什么效率低?” 。 不同的上下文异步操作同一份数据,锁是必不可少的。...,这买卖代价太大,毕竟Linux内核并非专职收包的。
图1 Linux内核接收网络包过程 理解了Linux工作原理之后,还有更重要的两件事情。第一是动手监控,会实际查看网络包接收的整体情况。...一 先说几个工具 在正式内容开始之前,我们先来了解几个Linux下监控网卡时可用的工具。 1)ethtool 首先第一个工具就是我们在上文中提到的ethtool,它用来查看和设置网卡参数。...另外我们前文《图解Linux网络包接收过程》里提到的NAPI收包时的poll回调函数,启动网卡时的open函数都是在这里实现的。...所以另外一种解决思路更好,那就是让内核处理网络包的速度更快一些,而不是让网络包傻傻地在RingBuffer中排队。怎么加快内核消费RingBuffer中任务的速度呢,别着急,我们继续往下看......,硬中断的总次数表示的是Linux收包总数吗?
上一篇文章中《图解Linux网络包接收过程》,我们梳理了在Linux系统下一个数据包被接收的整个过程。...图1 Linux内核接收网络包过程 理解了Linux工作原理之后,还有更重要的两件事情。第一是动手监控,会实际查看网络包接收的整体情况。...一.先说几个工具 在正式内容开始之前,我们先来了解几个Linux下监控网卡时可用的工具。 1)ethtool 首先第一个工具就是我们在上文中提到的ethtool,它用来查看和设置网卡参数。...所以另外一种解决思路更好,那就是让内核处理网络包的速度更快一些,而不是让网络包傻傻地在RingBuffer中排队。怎么加快内核消费RingBuffer中任务的速度呢,别着急,我们继续往下看......,硬中断的总次数表示的是Linux收包总数吗?
Linux 平台上的性能工具有很多,眼花缭乱,长期的摸索和经验发现最好用的还是那些久经考验的、简单的小工具。系统性能专家 Brendan D....Gregg 在最近的 LinuxCon NA 2014 大会上更新了他那个有名的关于 Linux 性能方面的 talk (http://www.brendangregg.com/linuxperf.html...和 Brendan 去年的 talk (http://www.vpsee.com/2013/06/linux-system-performance-monitoring-tools/)比较,今年增加了测试和优化两部分...下面的三张图片分别总结了 Linux 各个子系统以及监控、测试、优化这些子系统所用到的工具。 监控 ? 测试 ? 优化 ?
监控io性能: iostat -x 百分比监控磁盘负载 iotop 如果没有这个命令 可以 yum install -y iotop 安装 iotop 查看 io 的性能使用 主要关注 io 的百分之是否使用过高...主进程 I 多线程进程 + 前台进程 PID 当我们想要强制关闭一个进程时就需要使用到这个 命令:kill 加上进程 PID 下面的数字就可以强制关闭进程 ps aux | grep 加上进程具体的名字 监控网络状态...查看系统的网络连接状况 netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}' 统计网络的所有连接数量 Linux...-i ens33 -c 10 数据包只抓10个 10 = 根据需求填写自己需要多少包 tupdump -nn -i ens33 -c 10 -w /1.cap 把抓包的信息存到到一个指定的文件里面 1....cap文件名字可以任意修改 tcpdump -r 捕获的数据包存放文件夹/捕获的数据包 = 查看数据包里面的数据 tshark -n -t a -R http.request -T fields -e
笔记内容: l 10.6 监控io性能 l 10.7 free命令 l 10.8 ps命令 l 10.9 查看网络状态 l 10.10 linux下抓包 笔记日期:2017.8.25 10.6 监控...因为内存担任一个这么重要的角色,所以Linux操作系统才预留出一些内存空间分给buff/cache。...只查看udp的就加上u: ?...ss有一个缺点是不能显示进程的名字,netsta则可以显示进程的名字 10.10 Linux下抓包 ?...,所以tcpdump这个命令主要就是看网络数据的流向。
其他相关指令见:https://www.techrepublic.com/article/how-to-use-the-linux-iostat-command-to-check-on-your-storage-subsystem...iptraf 非常实用的tcp/udp网络监控工具,有一个非常简洁的界面,常用的功能包括: 1.IP流量监控器,用来显示网络中的IP流量变化信息。...2.简单的和详细的接口统计数据,包括IP、TCP、UDP、ICMP、非IP以及其他的IP包计数、IP校验和错误,接口活动、包大小计数。...3.TCP和UDP服务监控器,能够显示常见的TCP和UDP应用端口上发送的和接收的包的数量。 局域网数据统计模块,能够发现在线的主机,并显示其上的数据活动统计信息。...4.TCP、UDP、及其他协议的显示过滤器,允许你只查看感兴趣的流量。 以下为一个查看网卡统计信息的界面: ? 以上总结的都是大多数最有价值的 Linux 监控程序。
-s:设置数据包的大小; -v:详细显示指令的执行过程。...fib:显示FIB; -g或–groups:显示多重广播功能群组组员名单; -h或–help:在线帮助; -i或–interfaces:显示网络界面信息表单; -l或–listening:显示监控中的服务器的...:显示UDP传输协议的连线状况; -v或–verbose:显示指令执行过程; -V或–version:显示版本信息; -w或–raw:显示RAW传输协议的连线状况; -x或–unix:此参数的效果和指定...TTL的大小 -n:直接使用IP地址而非主机名 -p:设置UDP传输协议的通信端口 -r:忽略普通的Routing Table,直接将数据包送到远端主机上 -s:设置本地主机送出数据包的...强制将表达方式所指定的数据包转译成设置的数据包类型; -v:详细显示指令执行过程; -vv:更详细显示指令执行过程; -x:用十六进制字码列出数据包资料; -w:把数据包数据写入指定的文件
/linux相继实现各自版本,以下没有特殊说明的情况下,所有相关参数或叙述主要是针对linux版本展开的 ping工具集成在iputils包中,开源项目https://github.com/iputils...空中侧对ios端进行了抓包,地面侧在高防入口进行了抓包,从client/server侧角度看,双方都认为对方发起了强制断开(reset)信令:从手机端看认为是高防(服务端)先断开的,从高防侧看认为是手机...过滤规则利用 BPF (Berkeley Packet Filter) 过滤器来实现,这是一个基于指令集的过滤器,它能够对数据包的各个字段进行匹配和过滤,过滤出符合条件的数据包。...(从友商可正常访问来看也能印证这个问题) 从网络抓包数据来看,从client/server侧角度看,双方都认为对方发起了强制断开(reset)信令:从手机端看认为是高防(服务端)先断开的,从高防侧看认为是手机...用户管理和监控:AC 设备可以对所有接入用户进行统一管理和监控,包括用户的身份、设备类型、MAC 地址、IP 地址、上网时长等,帮助管理员了解用户的上网习惯和行为特征,发现和处理异常行为。
检测当前系统是否安装过MySQL相关数据库 需要通过rpm相关指令,来查询当前系统中是否存在已安装的mysql软件包,执行指令如下: rpm -qa 查询当前系统中安装的所有软件 rpm...将资料中提供的MySQL安装包上传到Linux并解压 A....Linux系统的网络情况。 ...参数说明: -l或--listening:显示监控中的服务器的Socket; -n或--numeric:直接使用ip地址,而不通过域名服务器; -p或--programs:显示正在使用...Socket的程序识别码和程序名称; -t或--tcp:显示TCP传输协议的连线状况; -u或--udp:显示UDP传输协议的连线状况; B. ps命令用于查看Linux中的进程数据
领取专属 10元无门槛券
手把手带您无忧上云