這兩天同事反映Linux server效能不彰, 嚴重影響應用程式效能, 但因之前也未接觸過Linux, 事情來了, 也只好硬著頭皮上場了, 之下是我的一些租淺看法:
- top指令: 監看CPU、Memory的使用量, 定時更新, 有很多指令可用, 例如排序、自訂欄位、調整process priority ...等, 還蠻好用的, 只差I/O資料
- iostat、vmstat指令: 監看I/O資料,可配合watch指令, 定時更新, 例如 watch -n 2 iostat, 不幸的事我們的Server好像偵測不到變化值, 希望善心人士能惠賜高見.
- nice指令: 可指定程式執行的優先等級,等級由 -19 ~ 20, 愈小等級愈高
- renice指令: 可調整執行中的程式(Process)優先等級, top指令也有提供, 我在top指令設定成功, 但直接下renice卻失敗, why ? :-(
- 心得:
1) 發現java 的CATALINA_OPTS 環境變數設在profile中, 造成每一個Java程式都占據大量的memory, 使系統一直在作Swap。
2) 用nice啟動較重要的程式, 給予優先等級
3) Tomcat需要較大的heap memory, 可在tomcat/bin 目錄的setenv.sh 檔案設定
set JAVA_OPTS=-server -XX:+UseParallelGC -Xmx768m -XX:MaxPermSize=160m -Djava.awt.headless=true
*** xmx: max heap size
*** server mode : 指示JVM採取run-time optimization
為了Linux, 最近度數又要增加了. 預告下次要寫一篇【眼睛保健】的文章與大家分享.
Keep coding.
沒有留言:
張貼留言