上周五下午,我们在博客中部署了推荐系统,在博文下方显示“最新IT新闻”的地方显示自动推荐的关联博文.我们用的推荐系统是第四范式的推荐服务,我们自己只是搭建了一个推荐系统中转站(基于 ASP.NET Core),接收来自博客前端的请求,然后将请求转发给第四范式的推荐服务,并将响应内容转发给博客前端. 这个中转站的功能非常简单,就是一个 http 请求/响应搬运工,简单到让我们忽视了它会给服务器带来的潜在压力 —— 一边与博客前端的请求/响应会产生大量 TCP 连接,一边与推荐服务的请求/响应会产生…
今天上午11:10,我们又中"奖"了,我们使用的阿里云 RDS 实例(SQL Server 2016 标准版,16核32G)突发出现 CPU 100%,引发全站故障,直到 12:15 才完全恢复,由此给您带来很大的麻烦,请您谅解. 这是我们今年的第3次中"奖",前2次分别发生在 2020-06-24 3:20~8:30 (详见故障公告)与 2020-08-20 20:55~21:14(详见故障公告). 相比前2次,这次中了一个大"奖",发生在访问…
今天 11:12-12:03 期间,园子使用的阿里云 RDS 实例(SQL Server2016 标准版,16核CPU)出现 CPU 100% 问题,引发全站故障,由此给您带来麻烦,请您谅解. 发现故障后,我们进行了 RDS 的主备切换,第1次切换失败,再次进行主备切换,再次失败,改为重启实例后才恢复正常. 上次出现同样问题是在2021年5月1日,详见 [故障公告]访问高峰数据库服务器 CPU 100% 引发全站故障…
悄悄地它又突然来了 -- 数据库服务器 CPU 100% 问题,上次光临时间是 3-30 8:48,这次是 4-28 9:41. 这次我们做出了快速反应,发现后立即进行主备切换,这次一次切换成功,CPU 很快恢复正常. 但是,这次来的"真"是时候(访问高峰),虽然数据库 CPU 恢复正常,但高并发下的博客站点在数据库恢复后来不及建缓存,大量请求503或者访问缓慢,估计今天整个上午都扛不住. 幸运的是,我们估计错了,10:15左竟然抗住了,博客站点开始恢复正常. 但是,就在我们准备发布故…
[背景说明] 在7层负载均衡上,查询网络状态发现timewait太多,于是开始准备优化事宜 整体的拓扑结构,前面是lvs做dr模式的4层负载均衡,后端使用(nginx.or haproxy)做7层负载均衡 [优化效果] 修改前,建立连接的有29个,timewait的就达到了900个,如下图所示 修改后,建立连接的有32个,timewait的从900降低到了49个,如下图所示 [具体优化方案] 注意:前端使用nat时,不适用本策略.详细“方案详细介绍”会说明 修改7层负载所在机器,/etc/sys…
一.查看哪些IP连接本机netstat -an二.查看TCP连接数1)统计80端口连接数netstat -nat|grep -i "80"|wc -l 2)统计httpd协议连接数ps -ef|grep httpd|wc -l 3).统计已连接上的,状态为“establishednetstat -na|grep ESTABLISHED|wc -l 4).查出哪个IP地址连接最多,将其封了.netstat -na|grep ESTABLISHED|awk {print $5}|awk -…
今天查看服务器的TCP连接数,发现其中 TIME_WAIT 状态的太多了: # netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a,S[a]}' LAST_ACK SYN_RECV ESTABLISHED FIN_WAIT1 FIN_WAIT2 CLOSING TIME_WAIT 或者用ss命令 # ss -s TCP: 1 (estab , closed , orphaned , synrecv , /), ports TI…
非常抱歉,昨天 18:40~19:10 再次遭遇上次遇到的 SQL 语句执行超时引发的网站首页访问故障,由此您带来麻烦,请您谅解. 上次故障详见故障公告,上次排查下来以为是 SQL Server 参数嗅探问题引起的,但在引起参数嗅探的漏洞被修复后今天再次出现故障说明上次的判断是错误的. 今天出现故障时的表现与上次一样,唯一不同的地方是这次比上次更糟糕,即使主备切换也无法恢复. 后来我们从 SQL 语句本身下手,给查询首页博文列表的 SQL 语句添加了时间条件才恢复正常. , getdate())…
6月19日开始,我们将博客站点的缓存服务器从 memcached 换成了 redis,稳定运行了3天,今天上午访问高峰突然出现问题,在 11:00-12:30 期间影响了网站的正常访问,由此给您带来麻烦,请求谅解. 在故障期间,日志中大量的等待响应超时错误 StackExchange.Redis.RedisTimeoutException: Timeout awaiting response 其中的一个典型日志: StackExchange.Redis.RedisTimeoutException…