ps_men یک اسکریپت ساده python میباشد که برای به دست آوردن مصرف memory واقعی یک نرم افزار در لینوکس، به ما کمک میکند. بسیاری از ابزارهای رایگان موجود در لینوکس برای نمایش مصرف RAM همانند vmstat, smem, top و etc موجود میباشد، اما این ابزار کمی در مقایسه با دیگر ابزارها به دلیل اینکه مصرف واقعی memory را نمایش میدهد، متفاوت است.
این ابزار مجموع مموری مشترک و اختصاصی برای یک برنامه را حساب می کند و کل میزان RAM استفاده شده دقیق را می دهد. قطعا این ابزار برای پیدا کردن برنامه ای که در سیستم RAM بیشتری مصرف می کند به هر کسی کمک خواهد کرد.
شما میتوانید ابزار ps_mem را از راه های بسیاری همانند package manager یا از طریق pip و یا متد مستقیم (به وسیله اجرا کردن اسکریپت ps_mem.py) نصب کنید.
نکته : توجه داشته باشید این کار نیاز به دسترسی root دارد.
همچنین توصیه میشود مطالعه کنید :
دستور free - یک دستور استاندارد برای چک کردن آمار مصرف فضای استفاده شده توسط رم (Free و Used) در لینوکس
دستور vmstat - یک ابزار جذاب استاندارد برای گزارش گرفتن آمار Virtual Memory
نصب ps_mem با استفاده از Package Manager
در سیستم های خانواده RedHat ابزار ps_mem در ریپازیتوری های پیش فرض وجود دارد، بنابراین ما میتوانیم با استفاده از package manager به راحتی آنرا نصب کنیم.
برای RHEL/CentOS از Yum Package Manager برای نصب پکیج ps_mem استفاده کنید.
برای خانواده Fedora، از dnf Package Manager برای نصب پکیج ps_mem استفاده کنید.
برای خانواده Arch، از pacman Package Manager برای نصب پکیج ps_mem استفاده کنید.
نصب ps_mem با استفاده از Pip
pip یک ابزار توصیه شده برای نصب پکیج های Python در لینوکس میباشد. از دستور pip به جای package manager برای گرفتن آخرین ورژن استفاده کنید. شما باید مطمئن شوید که پکیج pip را در سیستم تان داشته باشید. اگر نه که از توزیع package manager برای نصب پکیج python-pip استفاده کنید.
برای سیستم های مبتنی بر Debian
برای سیستم های مبتنی بر RHEL/CentOS
برای Fedora
برای openSUSE
برای سیستم های خانواده Arch
و در آخر ابزار pip را برای نصب ps_mem در لینوکس اجرا کنید.
اجرای اسکریپت ps_mem.py به صورت مستقیم
همچنین ما میتوانیم اسکریپت ps_mem.ph را به صورت مستقیم و با دانلود فایل آن از صفحه ی github اجرا کنیم.
استفاده از ps_mem
دستور ps_mem را بدون هیچ آپشن اضافه ای برای به دست آوردن اینکه هر نرم افزاری چقدر از فضای memory را مصرف کرده اجرا کنید.
برای نمایش خروجی به همراه مسیر کامل نرم افزارها از آپشن -s استفاده کنید.
برای نمایش مصرف رم، فقط برای PID های مورد نظر خود (نرم افزار مورد نظر) از آپشن -p به همراه pid نرم افزار مورد نظر، همانند زیر استفاده کنید.
برای نمایش فرآیند مصرف مموری در هر N ثانیه میتوانید از آپشن w استفاده کنید. در دستور زیر میزان مصرف ram به صورت 2 ثانیه یکبار نمایش داده میشود.
برای نمایش جمع کل RAM از آپشن -t همانند زیر کمک بگیرید.
موفق و سربلند باشید.
این ابزار مجموع مموری مشترک و اختصاصی برای یک برنامه را حساب می کند و کل میزان RAM استفاده شده دقیق را می دهد. قطعا این ابزار برای پیدا کردن برنامه ای که در سیستم RAM بیشتری مصرف می کند به هر کسی کمک خواهد کرد.
شما میتوانید ابزار ps_mem را از راه های بسیاری همانند package manager یا از طریق pip و یا متد مستقیم (به وسیله اجرا کردن اسکریپت ps_mem.py) نصب کنید.
نکته : توجه داشته باشید این کار نیاز به دسترسی root دارد.
همچنین توصیه میشود مطالعه کنید :
دستور free - یک دستور استاندارد برای چک کردن آمار مصرف فضای استفاده شده توسط رم (Free و Used) در لینوکس
دستور vmstat - یک ابزار جذاب استاندارد برای گزارش گرفتن آمار Virtual Memory
نصب ps_mem با استفاده از Package Manager
در سیستم های خانواده RedHat ابزار ps_mem در ریپازیتوری های پیش فرض وجود دارد، بنابراین ما میتوانیم با استفاده از package manager به راحتی آنرا نصب کنیم.
برای RHEL/CentOS از Yum Package Manager برای نصب پکیج ps_mem استفاده کنید.
کد PHP:
$ sudo yum install ps_mem
کد PHP:
$ sudo dnf install ps_mem
کد PHP:
$ sudo pacman -S ps_mem
نصب ps_mem با استفاده از Pip
pip یک ابزار توصیه شده برای نصب پکیج های Python در لینوکس میباشد. از دستور pip به جای package manager برای گرفتن آخرین ورژن استفاده کنید. شما باید مطمئن شوید که پکیج pip را در سیستم تان داشته باشید. اگر نه که از توزیع package manager برای نصب پکیج python-pip استفاده کنید.
برای سیستم های مبتنی بر Debian
کد PHP:
$ sudo apt-get install python-pip
برای سیستم های مبتنی بر RHEL/CentOS
کد PHP:
$ sudo yum install python-pip
برای Fedora
کد PHP:
$ sudo dnf install python-pip
برای openSUSE
کد PHP:
$ sudo zypper install python-pip
برای سیستم های خانواده Arch
کد PHP:
$ sudo pacman -S python-pip
و در آخر ابزار pip را برای نصب ps_mem در لینوکس اجرا کنید.
کد PHP:
$ sudo pip install ps_mem
اجرای اسکریپت ps_mem.py به صورت مستقیم
همچنین ما میتوانیم اسکریپت ps_mem.ph را به صورت مستقیم و با دانلود فایل آن از صفحه ی github اجرا کنیم.
کد PHP:
$ git clone https://github.com/pixelb/ps_mem.git && cd ps_mem
$ sudo python ps_mem.py
استفاده از ps_mem
دستور ps_mem را بدون هیچ آپشن اضافه ای برای به دست آوردن اینکه هر نرم افزاری چقدر از فضای memory را مصرف کرده اجرا کنید.
کد PHP:
$ sudo ps_mem
Private + Shared = RAM used Program
1.6 MiB + 438.5 KiB = 2.1 MiB packagekitd
1.7 MiB + 498.0 KiB = 2.1 MiB indicator-application-service
912.0 KiB + 1.3 MiB = 2.2 MiB window-stack-bridge
2.0 MiB + 350.5 KiB = 2.3 MiB gnome-keyring-daemon
1.8 MiB + 575.0 KiB = 2.3 MiB whoopsie
2.4 MiB + 304.5 KiB = 2.7 MiB systemd-journald
2.7 MiB + 157.5 KiB = 2.8 MiB ibus-engine-simple
2.7 MiB + 182.0 KiB = 2.9 MiB ibus-dconf
2.7 MiB + 332.5 KiB = 3.0 MiB NetworkManager
3.1 MiB + 169.5 KiB = 3.2 MiB polkitd
1.9 MiB + 1.7 MiB = 3.6 MiB systemd (2)
3.4 MiB + 172.5 KiB = 3.6 MiB deja-dup-monitor
2.9 MiB + 685.0 KiB = 3.6 MiB zeitgeist-datahub
2.9 MiB + 848.0 KiB = 3.7 MiB python2.7
3.5 MiB + 442.0 KiB = 4.0 MiB dbus-daemon (3)
3.2 MiB + 951.0 KiB = 4.1 MiB evolution-addressbook-factory
3.9 MiB + 435.0 KiB = 4.3 MiB lightdm (2)
3.7 MiB + 826.5 KiB = 4.5 MiB polkit-gnome-authentication-agent-1
3.7 MiB + 853.0 KiB = 4.6 MiB unity-fallback-mount-helper
3.7 MiB + 884.0 KiB = 4.6 MiB ibus-x11
4.1 MiB + 590.5 KiB = 4.6 MiB indicator-sound-service
4.5 MiB + 167.0 KiB = 4.7 MiB udisksd
4.3 MiB + 571.0 KiB = 4.9 MiB gnome-session-binary
4.5 MiB + 519.0 KiB = 5.0 MiB zeitgeist-fts
4.2 MiB + 900.5 KiB = 5.1 MiB indicator-printers-service
4.1 MiB + 1.0 MiB = 5.1 MiB bash (2)
3.9 MiB + 1.2 MiB = 5.2 MiB update-notifier
4.8 MiB + 426.0 KiB = 5.2 MiB pulseaudio
4.5 MiB + 1.5 MiB = 6.0 MiB url-dispatcher
4.3 MiB + 1.7 MiB = 6.0 MiB python3.5
5.2 MiB + 856.5 KiB = 6.1 MiB evolution-addressbook-factory-subprocess
5.6 MiB + 494.5 KiB = 6.1 MiB colord
5.0 MiB + 1.2 MiB = 6.2 MiB bamfdaemon
5.7 MiB + 1.1 MiB = 6.8 MiB evolution-source-registry
5.6 MiB + 1.3 MiB = 6.9 MiB indicator-keyboard-service
5.5 MiB + 1.5 MiB = 7.1 MiB ibus-ui-gtk3
5.4 MiB + 1.8 MiB = 7.2 MiB notify-osd
6.3 MiB + 1.1 MiB = 7.4 MiB nm-applet
6.4 MiB + 1.4 MiB = 7.8 MiB evolution-calendar-factory
6.3 MiB + 1.5 MiB = 7.8 MiB hud-service
6.5 MiB + 1.5 MiB = 8.0 MiB unity-panel-service
8.2 MiB + 1.8 MiB = 10.0 MiB unity-settings-daemon
11.1 MiB + 126.5 KiB = 11.2 MiB snapd
8.2 MiB + 3.0 MiB = 11.2 MiB indicator-datetime-service
10.3 MiB + 1.7 MiB = 12.0 MiB evolution-calendar-factory-subprocess (2)
12.5 MiB + 2.8 MiB = 15.3 MiB redshift-gtk
14.5 MiB + 1.8 MiB = 16.3 MiB fluxgui
13.5 MiB + 2.9 MiB = 16.4 MiB gnome-terminal-server
12.7 MiB + 7.6 MiB = 20.4 MiB apache2 (6)
20.8 MiB + 503.0 KiB = 21.3 MiB fwupd
22.8 MiB + 70.0 KiB = 22.9 MiB collectl
22.2 MiB + 10.8 MiB = 33.0 MiB nautilus
70.9 MiB + 1.5 MiB = 72.4 MiB gnome-software
97.9 MiB + 24.8 MiB = 122.8 MiB Xorg
131.9 MiB + 168.0 KiB = 132.1 MiB mysqld
222.1 MiB + 9.4 MiB = 231.5 MiB compiz
286.2 MiB + 11.8 MiB = 298.0 MiB firefox
---------------------------------
1.3 GiB
=================================
کد PHP:
$ sudo ps_mem -s
Private + Shared = RAM used Program
3.2 MiB + 951.0 KiB = 4.1 MiB /usr/lib/evolution/evolution-addressbook-factory
3.7 MiB + 826.5 KiB = 4.5 MiB /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
3.7 MiB + 853.0 KiB = 4.6 MiB /usr/lib/unity-settings-daemon/unity-fallback-mount-helper
3.7 MiB + 884.0 KiB = 4.6 MiB /usr/lib/ibus/ibus-x11 --kill-daemon
4.1 MiB + 590.5 KiB = 4.6 MiB /usr/lib/x86_64-linux-gnu/indicator-sound/indicator-sound-service
4.5 MiB + 167.0 KiB = 4.7 MiB /usr/lib/udisks2/udisksd --no-debug
4.3 MiB + 571.0 KiB = 4.9 MiB /usr/lib/gnome-session/gnome-session-binary --session=ubuntu
4.5 MiB + 519.0 KiB = 5.0 MiB /usr/lib/x86_64-linux-gnu/zeitgeist-fts
4.2 MiB + 900.5 KiB = 5.1 MiB /usr/lib/x86_64-linux-gnu/indicator-printers/indicator-printers-service
4.1 MiB + 1.0 MiB = 5.1 MiB bash (2)
3.9 MiB + 1.2 MiB = 5.2 MiB update-notifier
4.8 MiB + 426.0 KiB = 5.2 MiB /usr/bin/pulseaudio --start --log-target=syslog
5.0 MiB + 863.0 KiB = 5.9 MiB /usr/lib/evolution/evolution-calendar-factory-subprocess --factory local --bus-name org.gnome.evolution.dataserver.Subprocess.Backend.Calendarx2573x3 --own-path /org/gnome/evolution/dataserver/Subprocess/Backend/Calendar/2573/3
4.5 MiB + 1.5 MiB = 6.0 MiB /usr/lib/x86_64-linux-gnu/url-dispatcher/url-dispatcher
4.3 MiB + 1.7 MiB = 6.0 MiB python3 -v
5.2 MiB + 856.5 KiB = 6.1 MiB /usr/lib/evolution/evolution-addressbook-factory-subprocess --factory local --bus-name org.gnome.evolution.dataserver.Subprocess.Backend.AddressBookx2637x2 --own-path /org/gnome/evolution/dataserver/Subprocess/Backend/AddressBook/2637/2
5.6 MiB + 494.5 KiB = 6.1 MiB /usr/lib/colord/colord
5.2 MiB + 913.0 KiB = 6.1 MiB /usr/lib/evolution/evolution-calendar-factory-subprocess --factory contacts --bus-name org.gnome.evolution.dataserver.Subprocess.Backend.Calendarx2573x2 --own-path /org/gnome/evolution/dataserver/Subprocess/Backend/Calendar/2573/2
5.0 MiB + 1.2 MiB = 6.2 MiB /usr/lib/x86_64-linux-gnu/bamf/bamfdaemon
5.7 MiB + 1.1 MiB = 6.8 MiB /usr/lib/evolution/evolution-source-registry
5.6 MiB + 1.3 MiB = 6.9 MiB /usr/lib/x86_64-linux-gnu/indicator-keyboard/indicator-keyboard-service --use-gtk
5.5 MiB + 1.5 MiB = 7.1 MiB /usr/lib/ibus/ibus-ui-gtk3
5.4 MiB + 1.8 MiB = 7.2 MiB /usr/lib/x86_64-linux-gnu/notify-osd
6.3 MiB + 1.1 MiB = 7.4 MiB nm-applet
6.4 MiB + 1.4 MiB = 7.8 MiB /usr/lib/evolution/evolution-calendar-factory
6.3 MiB + 1.5 MiB = 7.8 MiB /usr/lib/x86_64-linux-gnu/hud/hud-service
6.5 MiB + 1.5 MiB = 8.0 MiB /usr/lib/x86_64-linux-gnu/unity/unity-panel-service
8.2 MiB + 1.8 MiB = 10.0 MiB /usr/lib/unity-settings-daemon/unity-settings-daemon
11.1 MiB + 126.5 KiB = 11.2 MiB /usr/lib/snapd/snapd
8.2 MiB + 3.0 MiB = 11.2 MiB /usr/lib/x86_64-linux-gnu/indicator-datetime/indicator-datetime-service
12.5 MiB + 2.8 MiB = 15.3 MiB /usr/bin/python3 /usr/bin/redshift-gtk
14.5 MiB + 1.8 MiB = 16.3 MiB /usr/bin/python /usr/bin/fluxgui
13.6 MiB + 2.9 MiB = 16.4 MiB /usr/lib/gnome-terminal/gnome-terminal-server
12.7 MiB + 7.6 MiB = 20.4 MiB /usr/sbin/apache2 -k start (6)
20.8 MiB + 503.0 KiB = 21.3 MiB /usr/lib/x86_64-linux-gnu/fwupd/fwupd
22.8 MiB + 70.0 KiB = 22.9 MiB /usr/bin/perl -w /usr/bin/collectl -D
22.2 MiB + 10.8 MiB = 33.0 MiB nautilus -n
70.9 MiB + 1.5 MiB = 72.4 MiB /usr/bin/gnome-software --gapplication-service
97.9 MiB + 24.8 MiB = 122.8 MiB /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
131.9 MiB + 168.0 KiB = 132.1 MiB /usr/sbin/mysqld
222.1 MiB + 9.4 MiB = 231.5 MiB /usr/bin/compiz
286.2 MiB + 11.8 MiB = 298.1 MiB /usr/lib/firefox/firefox
---------------------------------
1.3 GiB
=================================
کد PHP:
$ sudo ps_mem -p 2886,4386
Private + Shared = RAM used Program
13.5 MiB + 2.9 MiB = 16.4 MiB gnome-terminal-server
286.2 MiB + 11.8 MiB = 298.0 MiB firefox
---------------------------------
314.4 MiB
=================================
برای نمایش فرآیند مصرف مموری در هر N ثانیه میتوانید از آپشن w استفاده کنید. در دستور زیر میزان مصرف ram به صورت 2 ثانیه یکبار نمایش داده میشود.
کد PHP:
$ sudo ps_mem w 2
کد PHP:
$ sudo ps_mem -t
1329884160