故障處理 | 網站500,無法開啟站點(突然無法開啟,程式碼和伺服器沒做調整)
阿新 • • 發佈:2018-12-15
故障詳情
晚上3點接到監控報警,網站狀態碼出現500無法正常訪問。
處理詳情
故障分析
出現500故障,當時首先想到的可能是php出問題了,馬上登入到伺服器上面,檢查php錯誤日誌。發現php一直重複報這個錯誤:
PHP Fatal error: Uncaught exception 'RedisException' with message 'OOM command not allowed when used memory > 'maxmemory'.'
看到這個報錯,基本上可以定位是redis記憶體不夠,無法繼續儲存key的原因。執行命令檢視redis配置相關資訊:
redis-cli -p 6379 info memory # Memory used_memory:134315344 used_memory_human:128.09M #表示已用記憶體 used_memory_rss:148828160 #表示系統給redis分配的記憶體(即常駐記憶體) used_memory_rss_human:141.93M used_memory_peak:1030100224 used_memory_peak_human:982.38M total_system_memory:8202334208 total_system_memory_human:7.64G used_memory_lua:37888 used_memory_lua_human:37.00K maxmemory:1000000000 #設定最大記憶體值 maxmemory_human:1.86G maxmemory_policy:volatile-lru #redis儲存策略 mem_fragmentation_ratio:1.11 mem_allocator:jemalloc-4.0.3
解決方法
修改redis配置,增大redis最大記憶體,修改redis 儲存策略
maxmemory:2000000000
maxmemory_policy:allkeys-lru