开发者社区> 问答> 正文

有Linux实例系统负载的查询及分析吗?

有Linux实例系统负载的查询及分析吗?

展开
收起
小天使爱美 2020-03-26 09:20:44 757 0
1 条回答
写回答
取消 提交回答
  • 概述 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安全防护中,单击 状态 按钮,并在模式中选择 正常。

    2020-03-26 09:26:13
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载