【若溪】请两位看一下日志服务器的/var/log/mysql/slow_queries.log,时间范围00:50到01:10。注意第34行到第47行。
她发送消息,然后等待。
房间里很安静。她能听见冰箱压缩机启动的嗡嗡声,能听见楼上邻居冲马桶的水流声,能听见自己吞咽口水时喉咙的轻微响动。三种声音在黑暗里交织,像一首不协调的交响乐。
临时讨论组里,吴建国回复了。
【吴建国】看了。锁等待时间异常,但锁持有者显示为“system”,不是具体进程。
【周哲】我也看到了。这不对劲。system进程不会主动持有用户表锁。
路容的嘴角微微上扬,一个几乎看不见的弧度。她继续打字。
【若溪】请再执行:showprocesslist;然后过滤state为“Usersleep”的连接。
这次,周哲的回复快了一些。
【周哲】有七个连接处于Usersleep状态,sleep时间都超过300秒。连接来自……内部IP,10.0.5.x段。
10.0.5.x段。
路容的瞳孔收缩了一下。
那是测试服务器的IP段。按理说,测试服务器不应该在生产环境持有数据库连接,更不应该让连接处于休眠状态超过五分钟。
除非有人故意这么做。
她切回命令行,输入另一串指令。屏幕上的输出快速滚动,白色的字符在黑色背景上像一群受惊的飞鸟。路容的眼睛盯着屏幕,手指在键盘上悬停,像钢琴家等待下一个和弦。
找到了。
七个休眠连接,全部来自同一台测试服务器——test-05。而test-05服务器的管理员权限,上周刚刚变更过。
新的管理员是:王总监。
路容的呼吸停了一拍。
她靠在椅背上,闭上眼睛。脑海里快速闪过几个画面——王总监在会议室里冰冷的眼神,工位调整时那抹得意的微笑,还有今天下午,她经过王总监办公室时,听见里面传来的压低声音的电话:
“……必须给她点颜色看看……李总那边我会解释……”
当时路容没有多想。现在,这些碎片拼凑在一起,形成了一个模糊但危险的图案。
王总监在测试服务器上做了手脚,制造了这场“故障”。目的是什么?给她一个下马威?测试她的技术能力?还是……更深的算计?
路容睁开眼睛,眼底一片清明。
不管目的是什么,现在必须解决故障。而且,必须用“若溪”这个身份该有的方式解决——不能太突出,不能太老练,但也不能毫无作为。
她重新开始打字。
【若溪】@周哲@吴建国我有个猜测,不一定对。那七个休眠连接可能是测试脚本残留,脚本异常退出但连接没释放。可以尝试从测试服务器端强制kill连接吗?
消息发送出去。
路容等待回复的时候,手指无意识地摩挲着键盘边缘。塑料外壳有些磨损,边缘微微发亮,那是长期使用留下的痕迹。这台电脑陪了她三年,从“路容”到“若溪”,从天才新星到职场幽灵。它记得她所有的搜索记录,所有的代码尝试,所有深夜里的孤独和愤怒。
临时讨论组里,周哲回复了。
【周哲】有权限。我试试。
几秒钟后。
【周哲】kill了三个连接。另外四个……权限不足。
【吴建国】权限不足?test-05的root权限被改了?
【周哲】嗯。管理员换人了。
讨论组里沉默了几秒。
路容能想象屏幕那头的两个人此刻的表情——周哲皱着眉头,手指在键盘上敲击,试图找到绕过权限的方法;吴建国靠在椅背上,眯着眼睛,心里盘算着这背后的意味。
她继续打字。
【若溪】如果从数据库端强制终止连接呢?用super权限执行:killconnection[id];
这次,回复的是吴建国。 零零电子书
【吴建国】可以。但需要确认连接id。而且,super权限只有我和周工有。
【若溪】连接id在slowquerylog里有记录。第38行、42行、45行、49行。
消息发送出去。
路容等待的时候,端起桌上的水杯喝了一口。水是凉的,顺着喉咙滑下去,带来一阵轻微的寒意。窗外的天空是深紫色的,没有星星,只有城市的光污染在云层上涂抹出一片朦胧的橙红。
临时讨论组里,吴建国发来一条消息。
【吴建国】小姑娘,眼挺尖啊。连日志行数都记得这么清楚。
路容的手指停顿了一下。
她意识到自己犯了一个小错误——作为一个“新人”,不应该对日志文件熟悉到能精确指出行数。这太老练了,太像……曾经的她。
她快速打字补救。
【若溪】刚才查日志的时候特意记了一下,怕自己看错了。
这个解释有些牵强,但勉强说得通。
几秒钟后,周哲回复了。