• 关于

    linux查看网络流量sar

    的搜索结果

回答

概述 Linux中有各种查看网络流量的工具,比如sar、iftop、nethogs等。它们可以从不同的纬度来分析系统中流量信息,本文进行简要介绍。 详细信息 阿里云提醒您: 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。 对于正常进程导致的带宽跑满或跑高的问题,需要对服务器的带宽进行升级。对于异常进程,有可能是由于恶意程序问题,或者是部分IP恶意访问导致,也可能是服务遭到了CC攻击。可以安装如下步骤进行排查。 定位问题。找到影响带宽使用率过高的具体进程。 分析处理。排查影响带宽使用率过高的进程是否正常,并分类进行处理。 对于正常进程:您需要对程序进行优化或者升级带宽。 对于异常进程:您可以手动对进程进行查杀,也可以使用第三方安全工具进行查杀。 本文相关配置及说明已在CentOS 6.5 64位操作系统中进行过测试。其它类型及版本操作系统配置可能有所差异,具体情况请参阅相应操作系统官方文档。 sar的使用 sar可以从网络接口层面来分析数据包的收发情况、错误信息等。使用sar来监控网络流量的常用命令如下所示。 sar -n DEV [interval] [count] 注:interval参数是统计间隔,count参数是统计次数。 使用示例 执行如下命令,使用sar每1秒统计一次网络接口的活动状况,连续显示5次。 sar -n DEV 1 5 命令执行后会列出每个网卡5次的平均数据取值,根据实际情况来确定带宽跑满的网卡名称,对于ECS实例来说,通常内网网卡为eth0,外网网卡为eth1,系统显示类似如下,确认是eth1通过流量较大,然后执行以下步骤检查具体问题。 显示结果主要字段说明 IFACE:网络接口名称。 rxpck/s、txpck/s:每秒收或发的数据包数量。 rxkB/s、txkB/s:每秒收或发的字节数,以kB/s为单位。 rxcmp/s、txcmp/s:每秒收或发的压缩过的数据包数量。 rxmcst/s:每秒收到的多播数据包。 iftop的使用 iftop命令常见用法如下。参数-i后跟的interface表示网络接口名,比如eth0、eth1等等。如果不通过-i参数指定接口名,则默认检测第一块网卡的使用情况。 iftop [-i interface] 使用示例 登录Linux实例,关于如何登录Linux实例,请参考使用管理终端连接Linux实例。 执行如下命令,安装iftop流量监控工具。 yum install iftop -y 执行如下命令,可以查看流量较高的是哪个端口建立的连接,以及内网流量。 iftop -i eth1 -P 注:-P参数将会显示请求端口。 系统显示类型如下。 执行如下命令,查看端口对应的进程。 netstat -tunlp |grep [$Port] 注:[$Port]为上一步查看的端口。 系统显示类型如下。 确认对应服务后,您可以通过停止服务或使用iptables服务来对指定地址进行处理,例如屏蔽IP地址或限速,以保证服务器带宽能够正常使用。 显示结果主要字段说明 第一行:带宽使用情况显示。 中间部分为外部连接列表,即记录了哪些IP正在和本机的网络连接。 中间部分靠右侧部分是实时流量信息,分别是该访问IP连接到本机2秒、10 秒和40秒的平均流量。 =>代表发送数据,<=代表接收数据。 底部三行。 第一列:TX表示发送流量,RX表示接收流量,TOTAL表示总流量。 第二列cum:表示第一列各种情况的总流量。 第三列peak:表示第一列各种情况的流量峰值。 第四列rates:表示第一列各种情况2秒、10秒、40秒内的平均流量。 提示:iftop的流量显示单位是Mb,这里的b是比特(bit),不是字节(byte)。而ifstat显示的单位是KB中的B,也就是字节。1byte等于8bit。 常见操作命令说明 进入iftop界面后,可以通过按下相应的字母快捷按键,来对显示结果进行调整。 h:切换是否显示帮助。 n:切换显示本机的IP或主机名。 s:切换是否显示本机的host信息。 d:切换是否显示远端目标主机的host信息。 t:切换显示格式为2行、1行、只显示发送流量或只显示接收流量。 N:切换显示端口号或端口服务名称。 S:切换是否显示本机的端口信息。 D:切换是否显示远端目标主机的端口信息。 p:切换是否显示端口信息。 P:切换暂停或继续显示。 b:切换是否显示平均流量图形条。 B:切换计算2秒或10秒或40秒内的平均流量。 T:切换是否显示每个连接的总流量。 l:打开屏幕过滤功能,输入要过滤的字符。比如输入相应IP地址,回车后,屏幕就只显示这个IP相关的流量信息。 L:切换显示画面上边的刻度,刻度不同,流量图形条会有变化。 j或k:向上或向下滚动屏幕显示的连接记录。 1或2或3:根据右侧显示的三列流量数据进行排序。 <:根据左边的本机名或IP排序。 :根据远端目标主机的主机名或IP排序。 o:切换是否固定只显示当前的连接。 f:编辑过滤代码。 !:调用shell命令。 q:退出。 Nethogs的使用 Nethogs是一款开源的网络流量监控工具,可用于显示每个进程的带宽占用情况。这样可以更直观定位异常流量的来源。Nethogs支持IPv4和IPv6协议,支持本地网卡及PPP连接。Nethogs工具的安装方法请参阅其官方帮助文档,本文不再详述。安装完毕,直接输入nethogs启动工具即可。不带任何参数时,nethogs默认监控eth0。用户可以通过ifconfig等指令核实具体哪个网络接口(eth1、eth0)对应公网网卡。 使用示例 登录Linux实例,关于如何登录Linux实例,请参考使用管理终端连接Linux实例。 执行如下命令,安装nethogs流量监控工具。 yum install nethogs -y 通过nethogs工具来查看网卡上进程级的流量信息。若eth1网卡流量较高,则执行如下命令,查看每个进程的网络带宽情况以及进程对应的PID,确定导致带宽跑满或跑高的具体进程。 nethogs eth1 注:nethogs默认的监控间隔是1秒,用户可以通过-d参数来设定监控间隔。例如执行如下命令,设定监控间隔为5秒。 nethogs eth1 -d 5 系统显示类似如下。 5 若进程确定是恶意程序,可以通过执行如下命令,终止进程。 kill -TERM [$Port1] 提示:如果是Web服务程序,您可以使用iftop等工具来查询具体IP来源,然后分析Web访问日志是否为正常流量。日志分析可以使用logwatch或awstats等工具进行。 显示结果说明 在nethogs监控界面,按 s 可以按照Sent列进行排序,按 r 可以按照Received列进行排序,按 m 可以切换不同的统计单位显示,例如kb/s、kb、b、mb。监控界面信息说明如下所示。 PID列表示相应流量关联程序的进程号。 USER列表示相应进程的所属用户。 PROGRAM列表示程序的具体执行路径。 DEV列当前监控的网络接口名称。 Sent列表示相应进程已经发送的数据流量。 Received列表示程序已经接收的数据流量。 使用Web应用防火墙防御CC攻击 若您的服务遭受了CC攻击,请在Web应用防火墙控制台尽快开启CC安全防护。 登录Web应用防火墙控制台,关于如何登录Web应用防火墙控制台,请参考Web应用防火墙。 在CC安全防护中,单击 状态 按钮,并在模式中选择 正常。
1934890530796658 2020-03-26 09:26:13 0 浏览量 回答数 0

回答

Linux 中有各种查看网卡流量的工具,比如 sar、iftop、nethogs 等。它们可以从不同的纬度来分析系统中流量信息,本文进行简要介绍。 sar 的使用 sar 可以从网络接口层面来分析数据包的收发情况、错误信息等。 使用 sar 来监控网络流量的常用命令为: sar -n DEV [interval] [count]参数 interval 是统计间隔,count 是统计次数。 示例: 使用以下命令,可以使用 sar 每两秒统计一次网络接口的活动状况,连续报告 3 次: sar -n DEV 2 2# 输出结果包括按字节数/包数统计的,当前/平均网络接口利用率。Linux 2.6.32-573.12.1.el6.x8664 (centos6.6) 06/23/2016 _x86_64 (8 CPU)09:58:34 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s09:58:36 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.0009:58:36 AM eth0 2.50 0.00 0.15 0.00 0.00 0.00 0.0009:58:36 AM eth1 2.50 1.50 0.19 0.18 0.00 0.00 0.0009:58:36 AM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.0009:58:36 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s09:58:38 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.0009:58:38 AM eth0 1.00 0.00 0.06 0.00 0.00 0.00 0.0009:58:38 AM eth1 2.00 2.00 0.17 0.40 0.00 0.00 0.0009:58:38 AM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/sAverage: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00Average: eth0 1.75 0.00 0.10 0.00 0.00 0.00 0.00Average: eth1 2.25 1.75 0.18 0.29 0.00 0.00 0.00Average: docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 回显结果主要字段说明: IFACE:网络接口名称 rxpck/s、txpck/s:每秒收/发的数据包数量 rxkB/s、txkB/s:每秒收/发的字节数,以kB/s为单位 rxcmp/s、txcmp/s:每秒收/发的压缩过的数据包数量 rxmcst/s:每秒收到的多播数据包 iftop 的使用 iftop 命令常见用法如下: iftop [-i interface]参数 -i 后跟的 interface 表示网络接口名,比如 eth0、eth1 等等。如果不通过 -i 参数指定接口名,则默认检测第一块网卡的使用情况,对于 ECS,通常为内网网卡 eth0。 示例: 使用 iftop -i eth1 指令可以查看 ECS 服务器公网网卡的带宽使用情况。示例输出如下 12.5Kb 25.0Kb 37.5Kb 50.0Kb 62.5Kbmqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq172.16.2.226 => 42.120.74.111 880b 1.47Kb 1.34Kb <= 160b 221b 175b172.16.2.226 => 111.13.100.92 672b 672b 672b <= 672b 605b 638b172.16.2.226 => public1.alidns.com 0b 57b 14b <= 0b 114b 28b172.16.2.226 => 67.131.44.50 0b 42b 10b <= 0b 42b 10b172.16.3.255 => 172.16.2.208 0b 0b 0b <= 0b 0b 46b172.16.3.255 => 172.16.2.212 0b 0b 0b <= 0b 0b 14b255.255.255.255 => 172.16.2.212 0b 0b 0b <= 0b 0b 14bqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqTX: cum: 59.7KB peak: 2.83Kb rates: 1.52Kb 2.22Kb 2.02KbRX: 26.4KB 1.97Kb 832b 981b 925bTOTAL: 86.1KB 4.80Kb 2.33Kb 3.18Kb 2.92Kb <= 0b 288b 288b 回显结果说明: 第一行:带宽使用情况显示。 中间部分为外部连接列表,即记录了哪些 IP 正在和本机的网络连接。 中间部分靠右侧部分是实时流量信息,分别是该访问 IP 连接到本机 2 秒、10 秒和 40 秒的平均流量。 => 代表发送数据,<= 代表接收数据 。 底部三行: 第一列:TX 表示发送流量,RX 表示接收流量,TOTAL 表示总流量。 第二列 cum:表示第一列各种情况的总流量。 第三列 peak:表示第一列各种情况的流量峰值。 第四列 rates:表示第一列各种情况 2 秒、10 秒、40 秒内的平均流量。 注意:iftop 的流量显示单位是Mb,这里的 b 是比特(bit),不是字节(byte)。而 ifstat 显示的单位是 KB 中的 B 是字节。1 byte = 8 bit。 另外,进入 iftop 界面后,可以通过按下相应的字母快捷按键,来对显示结果进行调整。常见操作命令如下(区分大小写): h 切换是否显示帮助。 n 切换显示本机的 IP 或主机名。 s 切换是否显示本机的 host 信息。 d 切换是否显示远端目标主机的 host 信息。 t 切换显示格式为 2 行 /1 行 / 只显示发送流量 / 只显示接收流量。 N 切换显示端口号或端口服务名称。 S 切换是否显示本机的端口信息。 D 切换是否显示远端目标主机的端口信息。 p 切换是否显示端口信息。 P 切换暂停/继续显示。 b 切换是否显示平均流量图形条。 B 切换计算2秒或10秒或40秒内的平均流量。 T 切换是否显示每个连接的总流量。 l 打开屏幕过滤功能,输入要过滤的字符。比如输入相应 IP 地址,回车后,屏幕就只显示这个 IP 相关的流量信息。 L 切换显示画面上边的刻度;刻度不同,流量图形条会有变化。 j 或按 k 向上或向下滚动屏幕显示的连接记录。 1 或 2 或 3 根据右侧显示的三列流量数据进行排序。 < 根据左边的本机名或 IP 排序。 根据远端目标主机的主机名或 IP 排序。 o 切换是否固定只显示当前的连接。 f 编辑过滤代码。 ! 调用 shell 命令。 q 退出。 nethogs 的使用 Nethogs 是一款开源的网络流量监控工具,可用于显示每个进程的带宽占用情况。这样可以更直观定位异常流量的来源。Nethogs 支持 IPv4 和 IPv6协议,支持本地网卡及 PPP 连接。 Nethogs工具的安装方法请参阅其官方帮助文档,本文不再详述。 安装完毕,直接输入 nethogs 启动工具即可。不带任何参数时,nethogs 默认监控 eth0。用户可以通过 ifconfig 等指令核实具体哪个网络接口(比如 eth1、eth0)对应公网网卡。 示例输出: nethogs eth1# 输出结果如下:NetHogs version 0.8.0 PID USER PROGRAM DEV SENT RECEIVED9951 root wget eth1 7.253 322.344 KB/sec9670 root sshd: root@pts/0,pts/1 eth1 1.328 0.199 KB/sec? root ..16.2.226:33300-122.224.153.106:48167 0.000 0.000 KB/sec? root unknown TCP 0.000 0.000 KB/sec TOTAL 8.581 322.543 KB/sec 回显结果说明: PID 列表示相应流量关联程序的进程号。 USER 列表示相应进程的所属用户。 PROGRAM 列表示程序的具体执行路径。 DEV 列当前监控的网络接口名称。 Sent 列表示相应进程已经发送的数据流量。 Received 列表示程序已经接收的数据流量。 在 nethogs 监控界面,按下 s 可以按 Sent 列进行排序,按下 r 可以按 Received 列进行排序,按下 m 可以切换不同的统计单位显示 (kb/s, kb, b,mb)。 nethogs 默认的监控间隔是 1 秒,用户可以通过 -d 参数来设定监控间隔。例如设定监控间隔为5秒,可以输入: nethogs -d 5
KB小秘书 2019-12-02 02:06:58 0 浏览量 回答数 0

回答

Linux 中有各种查看网卡流量的工具,比如 sar、iftop、nethogs 等。它们可以从不同的纬度来分析系统中流量信息,本文进行简要介绍。 sar 的使用 sar 可以从网络接口层面来分析数据包的收发情况、错误信息等。 使用 sar 来监控网络流量的常用命令为: sar -n DEV [interval] [count]参数 interval 是统计间隔,count 是统计次数。 示例: 使用以下命令,可以使用 sar 每两秒统计一次网络接口的活动状况,连续报告 3 次: sar -n DEV 2 2# 输出结果包括按字节数/包数统计的,当前/平均网络接口利用率。Linux 2.6.32-573.12.1.el6.x8664 (centos6.6) 06/23/2016 _x86_64 (8 CPU)09:58:34 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s09:58:36 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.0009:58:36 AM eth0 2.50 0.00 0.15 0.00 0.00 0.00 0.0009:58:36 AM eth1 2.50 1.50 0.19 0.18 0.00 0.00 0.0009:58:36 AM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.0009:58:36 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s09:58:38 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.0009:58:38 AM eth0 1.00 0.00 0.06 0.00 0.00 0.00 0.0009:58:38 AM eth1 2.00 2.00 0.17 0.40 0.00 0.00 0.0009:58:38 AM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/sAverage: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00Average: eth0 1.75 0.00 0.10 0.00 0.00 0.00 0.00Average: eth1 2.25 1.75 0.18 0.29 0.00 0.00 0.00Average: docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 回显结果主要字段说明: IFACE:网络接口名称 rxpck/s、txpck/s:每秒收/发的数据包数量 rxkB/s、txkB/s:每秒收/发的字节数,以kB/s为单位 rxcmp/s、txcmp/s:每秒收/发的压缩过的数据包数量 rxmcst/s:每秒收到的多播数据包 iftop 的使用 iftop 命令常见用法如下: iftop [-i interface]参数 -i 后跟的 interface 表示网络接口名,比如 eth0、eth1 等等。如果不通过 -i 参数指定接口名,则默认检测第一块网卡的使用情况,对于 ECS,通常为内网网卡 eth0。 示例: 使用 iftop -i eth1 指令可以查看 ECS 服务器公网网卡的带宽使用情况。示例输出如下 12.5Kb 25.0Kb 37.5Kb 50.0Kb 62.5Kbmqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq172.16.2.226 => 42.120.74.111 880b 1.47Kb 1.34Kb <= 160b 221b 175b172.16.2.226 => 111.13.100.92 672b 672b 672b <= 672b 605b 638b172.16.2.226 => public1.alidns.com 0b 57b 14b <= 0b 114b 28b172.16.2.226 => 67.131.44.50 0b 42b 10b <= 0b 42b 10b172.16.3.255 => 172.16.2.208 0b 0b 0b <= 0b 0b 46b172.16.3.255 => 172.16.2.212 0b 0b 0b <= 0b 0b 14b255.255.255.255 => 172.16.2.212 0b 0b 0b <= 0b 0b 14bqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqTX: cum: 59.7KB peak: 2.83Kb rates: 1.52Kb 2.22Kb 2.02KbRX: 26.4KB 1.97Kb 832b 981b 925bTOTAL: 86.1KB 4.80Kb 2.33Kb 3.18Kb 2.92Kb <= 0b 288b 288b 回显结果说明: 第一行:带宽使用情况显示。 中间部分为外部连接列表,即记录了哪些 IP 正在和本机的网络连接。 中间部分靠右侧部分是实时流量信息,分别是该访问 IP 连接到本机 2 秒、10 秒和 40 秒的平均流量。 => 代表发送数据,<= 代表接收数据 。 底部三行: 第一列:TX 表示发送流量,RX 表示接收流量,TOTAL 表示总流量。 第二列 cum:表示第一列各种情况的总流量。 第三列 peak:表示第一列各种情况的流量峰值。 第四列 rates:表示第一列各种情况 2 秒、10 秒、40 秒内的平均流量。 注意:iftop 的流量显示单位是Mb,这里的 b 是比特(bit),不是字节(byte)。而 ifstat 显示的单位是 KB 中的 B 是字节。1 byte = 8 bit。 另外,进入 iftop 界面后,可以通过按下相应的字母快捷按键,来对显示结果进行调整。常见操作命令如下(区分大小写): h 切换是否显示帮助。 n 切换显示本机的 IP 或主机名。 s 切换是否显示本机的 host 信息。 d 切换是否显示远端目标主机的 host 信息。 t 切换显示格式为 2 行 /1 行 / 只显示发送流量 / 只显示接收流量。 N 切换显示端口号或端口服务名称。 S 切换是否显示本机的端口信息。 D 切换是否显示远端目标主机的端口信息。 p 切换是否显示端口信息。 P 切换暂停/继续显示。 b 切换是否显示平均流量图形条。 B 切换计算2秒或10秒或40秒内的平均流量。 T 切换是否显示每个连接的总流量。 l 打开屏幕过滤功能,输入要过滤的字符。比如输入相应 IP 地址,回车后,屏幕就只显示这个 IP 相关的流量信息。 L 切换显示画面上边的刻度;刻度不同,流量图形条会有变化。 j 或按 k 向上或向下滚动屏幕显示的连接记录。 1 或 2 或 3 根据右侧显示的三列流量数据进行排序。 < 根据左边的本机名或 IP 排序。 根据远端目标主机的主机名或 IP 排序。 o 切换是否固定只显示当前的连接。 f 编辑过滤代码。 ! 调用 shell 命令。 q 退出。 nethogs 的使用 Nethogs 是一款开源的网络流量监控工具,可用于显示每个进程的带宽占用情况。这样可以更直观定位异常流量的来源。Nethogs 支持 IPv4 和 IPv6协议,支持本地网卡及 PPP 连接。 Nethogs工具的安装方法请参阅其官方帮助文档,本文不再详述。 安装完毕,直接输入 nethogs 启动工具即可。不带任何参数时,nethogs 默认监控 eth0。用户可以通过 ifconfig 等指令核实具体哪个网络接口(比如 eth1、eth0)对应公网网卡。 示例输出: nethogs eth1# 输出结果如下:NetHogs version 0.8.0 PID USER PROGRAM DEV SENT RECEIVED9951 root wget eth1 7.253 322.344 KB/sec9670 root sshd: root@pts/0,pts/1 eth1 1.328 0.199 KB/sec? root ..16.2.226:33300-122.224.153.106:48167 0.000 0.000 KB/sec? root unknown TCP 0.000 0.000 KB/sec TOTAL 8.581 322.543 KB/sec 回显结果说明: PID 列表示相应流量关联程序的进程号。 USER 列表示相应进程的所属用户。 PROGRAM 列表示程序的具体执行路径。 DEV 列当前监控的网络接口名称。 Sent 列表示相应进程已经发送的数据流量。 Received 列表示程序已经接收的数据流量。 在 nethogs 监控界面,按下 s 可以按 Sent 列进行排序,按下 r 可以按 Received 列进行排序,按下 m 可以切换不同的统计单位显示 (kb/s, kb, b,mb)。 nethogs 默认的监控间隔是 1 秒,用户可以通过 -d 参数来设定监控间隔。例如设定监控间隔为5秒,可以输入: nethogs -d 5
KB小秘书 2019-12-02 02:06:18 0 浏览量 回答数 0

回答

作为一个javaer,我以前写过很多关于Linux的文章。但经过多年的观察,发现其实对于大部分人,有些东西压根就用不着。用的最多的,就是到线上排查个问题而已,这让人很是苦恼。那么,我们就将范围再缩小一下。 Linux生产环境上,最常用的一套“Sed“技巧 Linux生产环境上,最常用的一套“AWK“技巧 Linux生产环境上,最常用的一套“vim“技巧 Linux命令好像还真不少,根本原因就是软件多,也有像ag这样的命令想替代grep,但大多数命令古老而坚挺。不是因为这些软件设计的有多好,原因是一些软件最开始入驻了系统,时间久了,就变成了一种约定,这种习惯改变代价太大,就像把所有键盘的L和F换一下一样。 这片文章假定你已经了解大多数Linux命令,并了解操作系统的基本元素。如果你现在了解的命令还不足10个,下面的内容就不用看了。除了最基本的东西,本文列出一些对你的面试最常见的最能加分的地方,有些组合可能是你没见过的技巧。但本文仅仅是给出一个大致的轮廓和印象,为以后的专题性考察点作一个序。 本文中出现的所有命令,应该熟记并熟练使用。 几种比较典型的Linux系统 首先对目前的Linux版本有个大体的印象,大体分Desktop版和Server版,已经是百花齐放。 Ubuntu 最常见的Linux个人发行版,一位有情怀的南非富豪,有了钱你也可以这么做 CentOS 最常用Linux服务器发新版,RHEL的开放版本,因版权而生的轮子 Arch 滚动升级,海量二进制包,社区活跃,个人最爱 Gentoo 安装软件需要从源码开始编译,稳定,但用起来会很痛 LFS 从零构建Linux,跟着做一遍,Linux每根毛都看的清清楚楚 Kali 专做渗透用的,代表了发行版的一个发展路径,就是领域 首先要了解的概念 KISS Keep it Simple and Stupid,据说是哲学 一切皆文件 通常是文件的东西叫文件,进程、磁盘等也被抽象成了文件,比较离谱的管道、设备、socket等,也是文件。 这是Linux最重要的组织方式。 管道 | 分隔,前面命令的输出作为后面命令的输入,可以串联多个 重定向 < 将文件做为命令的输入 将命令的输出输出到文件 将命令的输出追加到文件 SHELL 首先确认你的shell,一般最常用的是bash,也有不少用csh,zsh等的,通过echo $SHELL可以看到当前用户的shell,对应的配置文件也要相应改变。 比如.zshrc,.bashrc 四大元素 进入linux,我们首先关注的是四个元素: 内存,cpu,存储,网络。 Linux提供了足够的命令,让你窥探它的每个角落。 接下来的命令都是些最常用的,不管精通不精通,想不起来要打屁股。 CPU 使用top查看cpu的load,使用shift+p按照cpu排序。 需要了解wa,us等都是什么意思 使用uptime查看系统启动时间和load,load是什么意思呢? 什么算是系统过载? 这是个高频问题,别怪我没告诉你 ps命令勃大茎深,除了查进程号外,你还需要知道R、S、D、T、Z、<、N状态位的含义 top和ps很多功能是相通的,比如watch "ps -mo %cpu,%mem,pid,ppid,command ax" 相当于top的进程列表; top -n 1 -bc 和ps -ef的结果相似。 有生就有死,可以用kill杀死进程。 对java来说,需要关注kill -9、kill -15、kill -3的含义,kill的信号太多了,可以用kill -l查看,搞懂大多数信号大有裨益。 如果暂时不想死,可以通过&符号在后台执行,比如tail -f a.log &。 jobs命令可以查看当前后台的列表,想恢复的话,使用fg回到幕前。 这都是终端作业,当你把term关了你的后台命令也会跟着消失,所以想让你的程序继续执行的话, 需要nohup命令,此命令需要牢记 mpstat 显示了系统中 CPU 的各种统计信 了解cpu亲和性 内存 free -m 命令,了解free、used、cached、swap各项的含义 cat /proc/meminfo 查看更详细的内存信息 细心的同学可能注意到,CPU和内存的信息,通过top等不同的命令显示的数值是一样的。 slabtop 用来显示内核缓存占用情况,比如遍历大量文件造成缓存目录项。 曾在生产环境中遇到因执行find /造成dentry_cache耗尽服务器内存。 vmstat 命令是我最喜欢也最常用的命令之一,可以以最快的速度了解系统的运行状况。 每个参数的意义都要搞懂。 swapon、swapoff 开启,关闭交换空间 sar 又一统计类轮子,一般用作采样工具 存储 使用df -h查看系统磁盘使用概况 lsblk 列出块设备信息 du 查看目录或者文件大小 网络 rsync 强大的同步工具,可以增量哦 netstat 查看Linux中网络系统状态信息,各种 ss 它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。 curl、wget 模拟请求工具、下载工具。 如wget -r http://site 将下载整个站点 ab Apache服务器的性能测试工具 ifstat 统计网络接口流量状态 nslookup 查询域名DNS信息的工具,在内网根据ip查询域名是爽爆了 nc 网络工具中的瑞士军刀,不会用真是太可惜了 arp 可以显示和修改IP到MAC转换表 traceroute 显示数据包到主机间的路径,俗称几跳,跳的越少越快 tcpdump 不多说了,去下载wireshark了 wall 向当前所有打开的终端上输出信息。 使用who命令发现女神正在终端上,可以求爱 网络方面推荐安装体验一下kaliLinux,上面的工具会让你high到极点。 如何组织起来 linux的命令很有意思,除了各种stat来监控状态,也有各种trace来进行深入的跟踪,也有各种top来统计资源消耗者,也有各种ls来查看系统硬件如lsblk、lsusb、lscpi。基本上跟着你的感觉走,就能找到相应的工具,因为约定是系统中最强大的导向。 Linux有个比较另类的目录/proc,承载了每个命令的蹂躏。像sysctl命令,就是修改的/proc/sys目录下的映射项。不信看看find /proc/sys -type f | wc -l和sysctl -a| wc -l的结果是不是很像? /proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。只不过以文件系统的方式为访问系统内核数据的操作提供接口。系统的所有状态都逃不过它的火眼金睛。例如: cat /proc/vmstat 看一下,是不是和vmstat命令的输出很像? cat /proc/meminfo 是不是最全的内存信息 cat /proc/slabinfo 这不就是slabtop的信息么 cat /proc/devices 已经加载对设备们 cat /proc/loadavg load avg原来就躺在这里啊 cat /proc/stat 所有的CPU活动信息 ls /proc/$pid/fd 静静地躺着lsof的结果 一般排查问题的方法 一般排查问题也是围绕着内存cpu等几个元素去排查。下图是一张大体的排查故障或者性能问题的过程,看图,不多说。 应用场景举例 下面举例从具体应用场景来说明各种命令的组合应用,此类场景数不胜数,需要个人积累。但强烈建议将sed和awk练的熟练一些。 怎么查看某个Java进程里面占用CPU最高的一个线程具体信息? 获取进程中占用CPU最高的线程,计为n。 使用top top -H -p pid,肉眼观察之 使用ps ps -mo spid,lwp,stime,time,%cpu -p pid 将线程号转化成十六进制printf 0x%x n 使用jstack找到相应进程,打印线程后的100行信息 jstack -l pid| grep spid -A 100 统计每种网络状态的数量 netstat -ant | awk '{print $6}' | sort | uniq -c | sort -n -k 1 -r![5.jpg](https://ucc.alicdn.com/pic/developer-ecology/655b656daf0344d58dbfd798fe1460b8.jpg) 首先使用netstat查看列表,使用’awk’截取第六列,使用uniq进行统计,并对统计结果排序。当然,也可以这样。 netstat -ant | awk '{arr[$6]++}END{for(i in arr){print arr[i]" "i }}' | sort -n -k 1 -r 这和“分析apache日志,给出当日访问ip的降序列表”是一样的问题。 怎么查看哪个进程在用swap 首先要了解/proc/$pid/smaps里有我们所需要的各种信息,其中Swap字段即是我们所需要的。只要循环遍历一下即可。 for i in `cd /proc;ls |grep "^[0-9]"|awk ' $0 >100'` ;do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps ;done |sort -k2nr End 软件领域有两种人才,一种是工程型的,一种是研究型的。在Linux领域里,相对于搞内核研究的来说,搞命令行的就属于工程型。工程型也有他自己的苦衷,比如,背诵命令就挺痛苦的,一般来说不太推荐背诵,第一覆盖的面不广,第二记的快忘的也快,浪费脑细胞。牛逼的记法就是用,用时间来冲淡烟云,见微知著,并体验其中的喜悦。爱她并天天抱她上床,真爱才成。 原创:小姐姐味道。
剑曼红尘 2020-04-01 11:01:13 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 企业建站模板