我发现最近每小时流量都达到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元