第(2/3)页 “慢查询变多了。 有几个查询走了全表扫描,索引没生效。” “哪几个查询?” 技术员报了几个SQL语句的片段。 赵磊快步走过去,弯下腰盯着他的屏幕,手指在键盘上飞快地敲了几行命令。 “这几个查询的索引我建过,不知道为什么没走。” 话音还没落,服务器风扇的声音突然变了。 从急促的旋转声变成了一种断断续续的咔咔声,然后——安静了。 不是彻底的安静,而是那种服务器停止响应的安静。 风扇还在转,但声音明显变小了。 监控屏幕上,CPU使用率从百分之九十直接掉到了百分之五。 “怎么回事?”赵磊直起身,走回服务器前面。 “所有连接都断了。”负责数据库监控的技术员说,“数据库服务好像挂了。” 赵磊在服务器上敲了几条命令,等了十几秒,没有响应。 他又敲了一次,还是没反应。 “服务器卡住了。 重启。” 他按下服务器的电源键,等了五秒,又按了一次。 电源灯灭了,然后又亮起来。 服务器开始重新启动,屏幕上滚过一行一行的启动信息。 办公室里的四个人都盯着那台服务器。 俞飛鸿把手里的咖啡杯放在桌子上,走过去,站在赵磊身后。 “什么情况?” 赵磊没有回头,声音有些沉,“高并发的时候,数据库的查询堆起来了,锁表了还是怎么回事,不太确定。 等重启完看日志。” “大概要多久?” “三五分钟。” 服务器启动的速度很慢,比平时慢得多。 启动信息一行一行地滚过去,每一行都让人等得心焦。 赵磊的手指在键盘上轻轻敲着,这是他紧张时的习惯动作。 服务器终于启动完成了。 赵磊登录进去,第一件事是查看系统日志。 日志里密密麻麻地记录着系统崩溃前的最后几秒钟发生的事情。 他一行一行地看,手指在屏幕上移动,目光专注得像一把刀。 “看到什么了?”俞飛鸿问。 “数据库的连接数超过了最大限制,然后新的连接请求被拒绝了,但已有的连接没有释放,越堆越多,最后把内存吃光了,系统自己把自己杀了。” “为什么会超过最大限制?” 赵磊沉默了几秒,“我设的连接数上限是两百。 理论上,两百个并发查询应该扛得住。 但刚才的模拟工具可能没控制好,实际发起的连接数超过了这个值。” “那现在怎么解决?” “先把上限调高,调到五百。 第(2/3)页