不要被惯性扼杀了思维:为什么监听状态的 SOCKET 会产生 TIME-WAIT 状态?

TIME-WAIT 状态是 TCP 四次挥手中的状态,在我的认知中,它是客户端 socket 的状态。但是最近遇到了个问题是:服务端上某个处于监听状态的 socket 有很多连接都处于这个状态。 当然在某些特定的场景下,服务端出现大量 TIME-WAIT 状态的 socket 状态是合理的,例如爬虫服务器,它要主动发起大 ... 阅读更多

apache 错误:cannot create SSLMutex with file '/var/run/ssl_mutex'

一、问题现象 昨晚大半夜 apache 挂了起不来了,查看错误日志信息为: 最开始错误日志只有 Configuration Failed,并没有下面那四行,是把错误级别调成 debug 才出来的。 二、解决办法 删除/var/run/ssl_mutex,apache 应该是之前异常退出了,没有清理干净这个文件, ... 阅读更多

system 和 popen 返回 ENOMEM 问题

一、我为什么不喜欢 system 和 popen 要说到我为什么不喜欢 system 和 popen 这两个函数,这个说来就话长了。最开始,我还是很喜欢用这两个函数的,直到后来发现了太多因为滥用导致的程序异常后,它们就逐渐被我打入了冷宫。我认为一个设计良好的程序,完全是可以避开这两个函数的。这不,一周之内,我就收 ... 阅读更多

我给微信找 BUG 系列:微信代理引起的负载问题排查过程

本周处理了好几例负载高问题,原因竟然都是因为微信对代理场景的支持不好导致的。 回顾十分曲折的排查过程,记录下来!顺带吐槽一下微信。 一、问题描述 背景:我们的设备作为客户处的上网出口,代理内网用户上网。 问题:设备流量不高,但是负载特别高,经常性产生断网事件,流量突降为 0 。 二、排查过程 2.1 分 ... 阅读更多

一次孤儿 socket 过多导致负载高的问题排查过程

一、问题现象 客户报障,说使用了我们的网关设备后网络经常中断。具体的情形是用我们设备做代理上网后,流量图显示流量每隔两分钟就会直线下跌一次,同时就伴随着内网用户断网。 经过排查后发现问题原因是设备负载太高了导致,出问题时候的负载趋势图为: 从图形来看,负载是每 1-2 分钟就会上升一次,而且上升得特别明 ... 阅读更多

一次 pidof 命令卡住导致业务中断引发的设计思考

一、问题回顾 问题现象:线上业务,某个进程被卡住了,所有任务都不响应,导致业务中断。 问题原因:程序中调用了 system 命令,执行了一次 pidof 命令,然而作者万万没想到这个 pidof 命令会卡住了,导致整个进程都阻塞了。 排查过程 第一步,确定进程状态,看看进程在干什么:先通过 ps 命令得到进程的 pi ... 阅读更多

一次主机被黑导致的系统负载高问题排查记录

一、问题描述 某天,在 QQ 空间看到大学同学发了一个求助帖: 求助安装一个 ffmpeg 软件 ((linux 平台下开源的音视频转码工具),本着助人为乐的想法准备提供一下帮助,了解之后才发现她想做的根本不是安装 ffmpeg,而是已经装好了发现命令执行太卡,以为自己装错了,想找个熟人重装一下。再次深入了解才发 ... 阅读更多

一次运营商网络抖动导致的上网慢问题分析

下午客户打电话过来说 QQ 总是掉线,怀疑 (一口咬定) 是我们设备 (我们的是路由设备,放在出口) 故障导致的,态度十分强硬。从客户提出问题的第一秒起就已经可以断定是运营商网络问题了,为什么呢: 对路由器来说,路由逻辑都是在系统内核实现的,linux 系统跑了这么多年,不可能还出现这种问题。 客户那里断网不是每 ... 阅读更多