阿里云我自己的服务器,2核8G的,1个物理CPU.1个物理核心,两线程
4核=核8g,1个物理CPU 2个物理核心,4线程
腾讯云sa24核8g 一个物理CPU,4个物理核心,,4线程
实际体验:腾讯云的redis会掉,阿里云的没有遇到过,扔开性能指数,还是阿里云的稳定些
腾讯云的不稳定点,性价比腾讯云还是可以吧,sa2做活动服务商那边拿真便宜!!
腾讯官方活动链接
阿里官方活动链接
以下是腾讯官网的一些数据
腾讯云标准型 S5
2.5GHz Intel® Xeon® Cascade Lake 处理器,2.5GHz,睿频3.1GHz,搭配最新一代六通道 DDR4,内存计算性能稳定
规格vCPU内存(GB)网络收发包(pps)队列数内网带宽能力(Gbps)主频备注
S5.SMALL11125万11.52.5GHz-
S5.SMALL21225万11.52.5GHz-
S5.SMALL41425万11.52.5GHz-
S5.MEDIUM42430万21.52.5GHz-
S5.MEDIUM82830万21.52.5GHz-
S5.LARGE84850万21.52.5GHz-
S5.LARGE1641650万21.52.5GHz-
S5.2XLARGE1681680万23.02.5GHz-
S5.2XLARGE3283280万23.02.5GHz-
S5.4XLARGE321632150万46.02.5GHz-
S5.4XLARGE641664150万46.02.5GHz-
S5.6XLARGE482448200万69.02.5GHz-
S5.6XLARGE962496200万69.02.5GHz-
S5.8XLARGE643264250万8122.5GHz-
S5.8XLARGE12832128250万8122.5GHz-
S5.12XLARGE964896400万1217.02.5GHz-
S5.12XLARGE19248192400万1217.02.5GHz-
S5.16XLARGE25664256500万1623.02.5GHz-
腾讯云s4
标准型 S4 实例采用至强®处理器 Skylake 全新处理器,内存采用最新最新一代六通道 DDR4 内存,,默认网络优化,内存带宽达2666MT/s最高内网收发能力达600万pps,最高内网带宽可支持25Gbps。
服务器 2.4GHz Intel® Xeon® Skylake 6148 最新一代六通道 DDR4 内存
规格vCPU内存(GB)网络收发包(pps)队列数内网带宽能力(Gbps)主频备注
S4.SMALL11125万11.52.4GHz-
S4.SMALL21225万11.52.4GHz-
S4.SMALL41425万11.52.4GHz-
S4.MEDIUM42430万21.52.4GHz-
S4.MEDIUM82830万21.52.4GHz-
S4.LARGE84850万21.52.4GHz-
S4.LARGE1641650万21.52.4GHz-
S4.2XLARGE1681680万23.02.4GHz-
S4.2XLARGE3283280万23.02.4GHz-
S4.4XLARGE321632150万46.02.4GHz-
S4.4XLARGE641664150万46.02.4GHz-
S4.6XLARGE482448200万68.02.4GHz-
S4.6XLARGE962496200万68.02.4GHz-
S4.8XLARGE643264250万811.02.4GHz-
S4.8XLARGE12832128250万811.02.4GHz-
S4.12XLARGE964896400万1216.02.4GHz-
S4.12XLARGE19248192400万1216.02.4GHz-
S4.16XLARGE12864128500万1622.02.4GHz-
S4.16XLARGE25664256500万1622.02.4GHz-
S4.18XLARGE28872288600万1624.02.4GHz-
腾讯云标准型SA2配置参数
CPU处理器:AMD EPYC ROME新一代处理器,主频2.6GHz,睿频3.3GHz。
内存:最新一代八通道 DDR4,内存计算性能稳定。
网络:超高网络收发包能力达750万pps,最大网络带宽25Gbps。
规格vCPU内存(GB)网络收发包(pps)队列数内网带宽能力(Gbps)主频备注
SA2.SMALL11125万11.52.6GHz-
SA2.SMALL21225万11.52.6GHz-
SA2.SMALL41425万11.52.6GHz-
SA2.MEDIUM42430万21.52.6GHz-
SA2.MEDIUM82830万21.52.6GHz-
SA2.LARGE84850万21.52.6GHz-
SA2.LARGE1641650万21.52.6GHz-
SA2.2XLARGE1681670万21.52.6GHz-
SA2.2XLARGE3283270万21.52.6GHz-
SA2.4XLARGE321632100万43.02.6GHz-
SA2.4XLARGE641664100万43.02.6GHz-
SA2.8XLARGE643264140万85.02.6GHz-
SA2.12XLARGE964896210万127.02.6GHz-
SA2.16XLARGE12864128280万169.02.6GHz-
SA2.20XLARGE16080160350万1612.02.6GHz-
SA2.22XLARGE22490224375万1613.02.6GHz-
SA2.24XLARGE19296192420万1614.02.6GHz-
SA2.32XLARGE256128256560万3218.02.6GHz-
SA2.40XLARGE320160320710万3223.02.6GHz-
SA2.45XLARGE464180464750万3225.02.6GHz-
产品服务器设置了「外网带宽使用率 >= 100%,统计粒度5分钟,连续1次满足条件则每1小时告警一次」告警策略,基本上我每天都收到多条告警信息。
放大一点查看数据:
服务器部署了 web 服务 和 用于存储图片资源,报表导出和资源(平均200KB左右,非 kb)一张,部分页面有时候会放好几张图片展示。如果是连续的浏览充电站、商城,或者导出报表,是很容易触发2次峰值而导致报警的。
刚才只是大约估计了一下可能的情况,排查问题还是要系统地去看,需要挑选了告警的时间区间,分别进行数据统计。
我们服务器对外的带宽服务有:
WEB 服务比较简单,nginx 上都有日志,可以通过日志的 bodysize 统计。其他两个是通过 socket 的,持续通讯的,所以我选择了数据日志的 log 进行大概统计。
以下是我的 nginx access.log 日志格式:
可以通过配置调整 ngx_http_log_module 的 log format,如:
可以看出 nginx 日志的 body_bytes_sent 是字节,所以可以通过以下指令查看数据量($10 是 body_bytes_sent 所在位置,需要根据实际调整;grep 内容是某一分钟的时间):
最终实际查看一天下来的流量也400MB,几个高峰的分钟段也就几M,都在预期合理的范围,并且形成不了持续的拥堵情况。
Web Socket 只有 connect 时的信息会写在 nginx access log 上,不过平时通讯的信息都有手动写相应的 access log(注意排除 业务的log信息)。经统计 web socket 的 access log 比较小,一天只有十几M的数据,基本可以忽略。
注意:心跳包也需要统计进去。
桩agent 是通过端口直连的,没有经过 nginx,log 比较分散,统计了几个大的agent的 log(只统计 access log),占用的大小都不大,基本不形成高峰。但由于数量多,没有最终确定某个时间段的高峰值。
通过 nginx 配置,限制最大的带宽,可以稍微缓解一次访问的压力。避免一个大文件的访问,就长期占用了所有的外网带宽。
Nginx 限流有两种方式:
ngx_http_limit_req_module 模块提供限制请求处理速率能力,使用了漏桶算法(leaky bucket)。下面例子使用 nginx limit_req_zone 和 limit_req 两个指令,限制单个IP的请求处理速率。
==在 nginx.conf http 中添加限流配置:==
==配置 server,使用 limit_req 指令应用限流==
上面例子限制 10r/s,如果有时正常流量突然增大,超出的请求将被拒绝,无法处理突发流量,可以结合 burst 参数使用来解决该问题。
burst 译为突发、爆发,表示在超过设定的处理速率后能额外处理的请求数。当 rate=10r/s 时,将1s拆成10份,即每100ms可处理1个请求。
此处,burst=20 ,若同时有21个请求到达,Nginx 会处理第一个请求,剩余20个请求将放入队列,然后每隔100ms从队列中获取一个请求进行处理。若请求数大于21,将拒绝处理多余的请求,直接返回503.
不过,单独使用 burst 参数并不实用。假设 burst=50 ,rate依然为10r/s,排队中的50个请求虽然每100ms会处理一个,但第50个请求却需要等待 50 * 100ms即 5s,这么长的处理时间自然难以接受。
因此,burst 往往结合 nodelay 一起使用。
nodelay 针对的是 burst 参数,burst=20 nodelay 表示这20个请求立马处理,不能延迟,相当于特事特办。不过,即使这20个突发请求立马处理结束,后续来了请求也不会立马处理。burst=20 相当于缓存队列中占了20个坑,即使请求被处理了,这20个位置这只能按 100ms一个来释放。
这就达到了速率稳定,但突然流量也能正常处理的效果。
ngx_http_limit_conn_module 提供了限制连接数的能力,利用 limit_conn_zone 和 limit_conn 两个指令即可。下面是 Nginx 官方例子:
limit_conn perip 10 作用的key 是 $binary_remote_addr,表示限制单个IP同时最多能持有10个连接。
limit_conn perserver 100 作用的key是 $server_name,表示虚拟主机(server) 同时能处理并发连接的总数。
需要注意的是:只有当 request header 被后端server处理后,这个连接才进行计数。
使用独立的云存储,专门存放资源文件。
Agent 与桩之间是通过外网连接的,可以考虑多加一台服务器,与 产品服务是一个内网的。Agent 先连接到一台转发服务器,与 ECMP直接通过内网连接。
端口转发参考:《Agent端口映像》
略
鉴于当前告警实际对访问的影响可忽略,将触发次数调整为2次再告警。(后面再也没有收到告警了~)
《 Nginx 的两种限流方式 》
《 常用的服务器日志分析命令 》
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)