這篇文章開始小亦平台會持續給大家科普一些運維過程中常見的問題解決案例,運維朋友們可以在常見問題及解決方案專欄查看更多案例。
- 問題概述
2024年3月1日,某客户反饋Redis隊列堆積導致應用卡頓。系統環境如下:
操作系統:Linux
Redis版本:4.0.10
架構:Sentinel
經排查,系統因內存不足觸發Swap交換分區,嚴重拖慢Redis性能。
- 問題分析
分析過程:
- 慢查詢排查:檢查Redis慢日誌(Slowlog),未發現異常命令。
- 內存使用分析:Redis配置最大內存4G,實際使用僅200M,正常。
- 查看內存碎片率小於1(大於1是合理的),表示Redis內存分配超出了物理內存,操作系統正在進行內存交換,內存交換會引起非常明顯的響應延遲。
- 查看操作系統層面內存使用分配情況,Swap使用了1G。
分析結論:此係統的Redis使用到了Swap交換分區,對Redis的性能影響非常大,所以會導致隊列堆積。由於Redis是基於內存的非關係型數據庫,內存的讀寫速度遠遠高於磁盤的速度,所以會嚴重影響Redis的性能。
- 解決方案與優化建議
優化措施:
1, 增加內存,使操作系統有充足的內存,才不會使用Swap;
2, 優化調整系統參數/etc/sysctl.conf,如下;
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
echo "vm.swappiness = 1" >> /etc/sysctl.conf
echo never >/sys/kernel/mm/transparent_hugepage/enabled
sysctl -p
3, 適當增加內存,並關閉Swap交換分區。
若需進一步協助或遇到其他運維問題,可以點擊鏈接:https://www.ces-xiaoyi.com.cn/#/workOrder?marketing_code=arti...使用小亦工單,我們將快速響應!
解鎖小亦平台的更多功能:
小亦平台AI巡檢Agent現已正式開放!🌟三步實現智能運維,get專業巡檢報告: https://www.ces-xiaoyi.com.cn/#/next_console/console/workbenc...