故障現象:
網站訪問緩慢。
數據庫RDS: CPU滿,連接數滿,其他值都是空閒。
apache服務器:CPU正常,IO正常,流量報警,內存爆滿。
解決思路:
一、沒遇到過此情況,一臉懵逼。
二、請教大神尋求思路。
根據現行表明有可能是:
1、慢查詢,表鎖
2、CC攻擊或者蜘蛛抓取導致大量的小查詢(可能沒有索引)
一、查看數據庫,有沒有存在慢查詢和鎖表情況。(show full processlist),關注:查看最長時間查詢的幾個連接。注意:(帶動作的連接,如果只連接值是null)不操作可忽略
一、1:如果存在表鎖查看什麼表鎖住了,show OPEN TABLES where In_use > 0;。
故障原因: 二、經過查詢2條SQL缺少索引,但是這2條索引查詢時間都在1秒正常值內,因為查詢較多引起的堵塞。(果斷添加這2條缺少的索引)。
故障原因: 二、2、SELECT * FROM tp_supplier WHERE supplier_id > 0 AND fenxiao_cate_id_1 = '1376827' AND is_show = 1 AND LENGTH(brand_logo) > 0 AND is_recommend = 1 ORDER BY order_by DESC LIMIT 0, 7 (該SQL查詢字段中 tp_supplier.brand_logo > 0 傳入的數據類型與表字段定義不一致,會導致索引失效,建議改為 tp_supplier.brand_logo > '0' )
三、5分鐘後數據庫恢復正常,網站恢復正常,一臉無懵逼。
常用故障診斷工具:top 、vmstat 、iotop、ifstatus、mytop、iftop -i eth1、iostat