一個 PostgreSQL 程序,會有下列的 Process:
[enterprisedb@edbvm ~]$ ps aux|grep postgres enterpr+ 1235 0.0 1.9 623920 29472 ? S 10:08 0:00 /opt/PostgresPlus/9.5AS/bin/edb-postgres -D /opt/PostgresPlus/9.5AS/data enterpr+ 1255 0.0 0.0 209936 1412 ? Ss 10:08 0:00 postgres: logger process enterpr+ 1257 0.0 18.0 624076 276876 ? Ss 10:08 0:00 postgres: checkpointer process enterpr+ 1258 0.0 12.3 623920 189224 ? Ss 10:08 0:00 postgres: writer process enterpr+ 1259 0.0 0.9 623920 13920 ? Ss 10:08 0:00 postgres: wal writer process enterpr+ 1260 0.0 0.1 624348 2796 ? Ss 10:08 0:00 postgres: autovacuum launcher process enterpr+ 1261 0.0 0.1 212188 1864 ? Ss 10:08 0:00 postgres: stats collector process enterpr+ 1274 0.0 0.6 628896 10156 ? Ss 10:08 0:01 postgres: enterprisedb edb ::1[54154] idle enterpr+ 7206 0.0 0.0 112648 968 pts/0 R+ 13:29 0:00 grep --color=auto postgres
想要觀察 PostgreSQL 這個程式「總」記憶體用量(包含它全部的 Process),可以用下式執行(測試於 CentOS 7,其他 Linux Distribution 可能要微調一下):
[enterprisedb@edbvm ~]# while true > do > ps -u enterprisedb o pid= | grep -o '[^\t ].*' | sed 's#.*#/proc/&/smaps#' | xargs sudo grep ^Pss: | awk '{A+=$2} END{print A}' > sleep 3 > done
就會以每三秒列一次 PostgreSQL 記憶體用量(KB)了。
至於有沒有其他方式,以後有遇到再補充。
參考:
沒有留言:
張貼留言