CPU访问请求过高问题分析与解决方案

我发现最近每小时流量都达到2.4G了,为何有这么多流量产生
经过分析如下:
后台查看 服务器近期一直有出流量,平均维持在4.5Mb/s左右。 一小时等于 3600 秒,那么 一小时的流量大约就是 4.5 Mb/s * 3600 = 16200Mb = 1.97 GB ,是大致符合 我们的流量扣费的。
可以参考文档 https://help.aliyun.com/knowledge_detail/41339.html 在系统内部使用 iftop 命令,看下是什么端口(程序)在向外发流量。
iftop工具的使用
iftop是Linux系统中一个免费的网卡实时流量监控工具,可以监控包括指定网卡的实时流量、端口连接信息、反向解析IP等信息。

iftop命令
iftop常用命令如下。

iftop [-i interface]
interface表示网络接口名,比如eth0、eth1等。如果不通过-i参数指定接口名,则默认检测第一块网卡的使用情况。

使用示例
远程连接Linux系统的ECS实例。

具体操作,请参见连接方式概述。

执行如下命令,安装iftop流量监控工具。

yum install iftop -y
执行如下命令,查看详细端口流量占用情况。

iftop -i eth0 -P
说明
-P参数会显示请求端口。

系统显示类型如下,58690端口占用流量最大。2023-02-26_18-15-54

执行如下命令,查看端口对应的进程。

netstat -tunlp |grep [ P o r t ] 说明 [ Port] 说明 [ Port]说明[Port]为上一步查看的端口。

系统显示类型如下。

确认对应服务后,您可以通过停止服务或使用iptables服务来对指定地址进行处理。

例如屏蔽IP地址或限速,以保证服务器带宽能够正常使用。

显示结果主要字段说明

2023-02-26_19-30-35
第①部分:带宽使用情况。

第②部分:外部连接列表,即记录了哪些IP正在和本机的网络连接。

右侧部分是实时流量信息,分别是该访问IP连接到本机2秒、10秒和40秒的平均流量。

=>表示发送数据,<=表示接收数据。

第③部分。

第一列:TX表示发送流量,RX表示接收流量,TOTAL表示总流量。

第二列cum:表示第一列各种情况的总流量。

第三列peak:表示第一列各种情况的流量峰值。

第四列rates:表示第一列各种情况2秒、10秒、40秒内的平均流量。

常见操作命令参数说明

进入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:退出。
根据分析,确实服务的访问流程过大,每天有178万的流量请求,分析每个请求包如下:
您接口响应的数据并不小。仅仅一个TCP会话中,您的接口程序就响应了 276KB 流量数据。大量的TCP会话,那流出流量会更大。
在这里插入图片描述
在这里插入图片描述
优化nginx配置:

日志访问分析

在这里插入图片描述 上面提供的日志,30号就产生58M的日志,访问量比较大,而统计访问的客户端ip,如截图所示,拿取了前40位,您可以看下ip访问的次数

#access_log  logs/access.log  main;

sendfile        on;
#tcp_nopush     on;

#keepalive_timeout  0;
keepalive_timeout  65;
            client_max_body_size 31m;

 # 开启压缩机制
gzip on;
 #         # 指定会被压缩的文件类型(也可自己配置其他类型)
gzip_types text/plain application/javascript text/css application/xml text/javascript image/jpeg image/gif image/png;
 #                 # 设置压缩级别,越高资源消耗越大,但压缩效果越好
gzip_comp_level 5;
 #                         # 在头部中添加Vary: Accept-Encoding(建议开启)
gzip_vary on;
 #                                 # 处理压缩请求的缓冲区数量和大小
gzip_buffers 16 8k;
 #                                         # 对于不支持压缩功能的客户端请求不开启压缩机制
gzip_disable "MSIE [1-6]\."; # 低版本的IE浏览器不支持压缩
 #                                                 # 设置压缩响应所支持的HTTP最低版本
gzip_http_version 1.1;
 #                                                         # 设置触发压缩的最小阈值
gzip_min_length 2k;
 #                                                                 # 关闭对后端服务器的响应结果进行压缩
gzip_proxied off;

优化后的结果:
服务做了流量包处理后费用一天的从33元到7元,预计一月944的费用会减少费用 749元流量费用

日期(周五) 费用(元) 订单(预订单)
2023/8/18 35.223 109
2023/8/25 29.626 112
2023/9/1 33.817 100
2023/9/8 6.646 141

公网带宽从7M 降低到1M以内
在这里插入图片描述
在这里插入图片描述

流量费用每小时1.9元变动0.35元

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值