您好,登錄后才能下訂單哦!
小編給大家分享一下如何從PostgreSQL外部來查看內存,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
PostgreSQL 查看內存使用的方法比較多, 大部分都是進入到POSTGRESQL 中進行查看的,今天從PostgreSQL 外部來查看內存的使用方式和方法.
本次主要使用的命令就是ps命令
通過ps 命令中的附帶參數, 對當前的PG運行的線程進行一個展示,其中每個線程使用的CPU的Memory 的比率也會清晰的展示在屏幕中.
ps -u postgres o pid,rss:8,cmd | awk 'NR>1 {A+=$2} {print} END{print "Total RSS: " A}'
通過PS 和AWK 的組合,可以對當前POSTGRESQL 的當前得到的與postgresql有關的進程使用的內存數,以及總體使用的內存數據量.
首先我們要確認RSS 到底是什么
RSS是當前映射到進程中的頁面總數。他分為兩部分, 第一部分是Shared_Clean + Shared_Dirty中RSS的共享部分,Private_Clean + Private_Dirty是RSS中對這個進程的獨享。
在LINUX 中proc目錄中有所有相關的進程的信息, PSS 通過下面的預計獲得,所以RSS - PSS 等于的就是進程獨享的內存
ps -u postgres o pid= | sed 's#.*#/proc/&/smaps#'|sed s/[[:space:]]//g | xargs sudo grep ^Pss: | awk '{A+=$2} END{print A}'
實際上在知道進程號,在配合上面的語句稍加改造,就可以獲得,你想知道的線程的使用的PSS 是的多少, 通過下圖兩個值的比較, 就可以知道 postgres 主進程中 16848 - 10737 就是這個進程與其他進程共享的內存是多少.
當然有沒有更簡單的方式來獲取這些信息, 目前直接可以通過命令來顯示RSS PSS USS 信息的 smem工具可以滿足相關的需求,另外還可以顯示那些進程已經開始使用了 SWAP
所以當有人問,POSTGRESQL 到底使用了多少內存,并且在這之后,你可以告訴他共享內存使用了多少, 進程獨占使用了多少, 有那些進程已經開始使用了SWAP, 這對解決某些關于內存方面的問題,是有幫助的,尤其對于某些訪問的進程的內存使用的分析.
VSS- Virtual Set Size 虛擬耗用內存(包含共享庫占用的內存)
RSS- Resident Set Size 實際使用物理內存(包含共享庫占用的內存)
PSS- Proportional Set Size 實際使用的物理內存(比例分配共享庫占用的內存)
USS- Unique Set Size 進程獨自占用的物理內存(不包含共享庫占用的內存)
以上是“如何從PostgreSQL外部來查看內存”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。