1. 程式人生 > >故障處理 | 網站500,無法開啟站點(突然無法開啟,程式碼和伺服器沒做調整)

故障處理 | 網站500,無法開啟站點(突然無法開啟,程式碼和伺服器沒做調整)

故障詳情

晚上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

知識拓展