###### tags: `Linux`, `SRE` # SRE 讀書會 Round 4 #06 - 線上讀書會共筆 ## 活動資訊 * Date: 2020/07/02 (四) 20:00 - 21:30 * [導讀進度表](https://docs.google.com/spreadsheets/d/1Lgti3mILkvwxyzklX1vvLraaGD-7ePK9rkmlulfOknE/edit#gid=0) * [導讀 Guideline](https://study-area.sre.tw/GuideLine/) * Github: [study-area-docs](https://github.com/cross-community/study-area-docs) --- # 現場共筆 ## 17 | 案例篇:如何利用系統緩存優化程序的運行效率? 導讀:FreddyFan * Buffer vs Cache * 採用工具:(講者採用 CentOS 7 為例) * cachestat ![](https://i.imgur.com/LwTo2Cw.png) * cachetop ![](https://i.imgur.com/Z2iYRpl.png) * 以上都是從 /proc 取出資料整理而得 * pcstat ![](https://i.imgur.com/FhoUQPg.png) * 除 IO 存取外, 網路延遲也是造成速度慢的主因之一 * 程式 cache 操作 * nginx cache * lua cache * 第三方軟體輔助 * Redis * Memcached * 雲端方案 CDN * 範例: nginx + openresty > CentOS 如何安裝 bcc-tools 第 22 章有介紹 > https://github.com/iovisor/bcc/blob/master/INSTALL.md --- ## 18 | 案例篇:內存洩漏了,我該如何定位和處理? 導讀:義格 * 記憶體有限, 當記憶體耗光, 系統會強制執行 OOM 回收記憶體 * 造成洩漏的原因 * 程式執行完畢未歸還記憶體 * * bug * 記憶體區分 heap 和 stack * 工具 * systat: vmstat * bcc * CentOS 需升級 kernel 至 4.x 以上才能使用 --- ## 19 | 案例篇:為什麼系統的Swap變高了(上) 導讀:Jerry Cheng * SWAP 原理 * 把不常訪問的內存放到硬碟 (換出) * SWAP 目的 * 回收內存 * 內存不足時, 應用程式不想被 OOM * 系統休眠 * 內存回收依據 * 有新需求, 但現有內存不夠, 直接回收 * kswapd0 * NUMA vs SWAP * SWAP 升高, 但內存還很多? * 在 NUMA 下, 多個處理器被劃分到不同的 Node 上, 且每個 Node 都有各自的內存空間 * swappiness --- ## 20 | 案例篇:為什麼系統的Swap變高了?(下) 導讀:John (強哥) * RAM 貴, Disk 便宜 * 工具 * apt install sysstat * SWAP 分類 * 分區 * 檔案 * demo * 利用 demo 產生一個檔案 * chmod 600 file * mkswap file * swapon file --- # 參考資料