728x90
리눅스에서 메모리 사용률이 높은 프로세스를 찾는 방법
1. top 명령어
top 명령어는 시스템 상태를 실시간으로 모니터링하는 도구로 메모리 사용률이 높은 프로세스를 확인할 수 있습니다. top을 실행한 후에는 메모리 사용량이 큰 프로세스들이 상단에 나타납니다.
top
2. htop 명령어
htop은 top과 유사하지만 더 사용하기 편리하며 색상으로 시각화된 인터페이스를 제공합니다.
sudo apt-get install htop
더보기
---
$ sudo apt install htop
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
libnl-3-200 libnl-genl-3-200
Suggested packages:
lm-sensors lsof strace
The following NEW packages will be installed:
htop libnl-3-200 libnl-genl-3-200
0 upgraded, 3 newly installed, 0 to remove and 53 not upgraded.
Need to get 197 kB of archives.
After this operation, 566 kB of additional disk space will be used.
Do you want to continue? [Y/n]
...
---
htop
3. ps 명령어와 정렬
ps 명령어를 사용하여 메모리 사용률에 따라 정렬된 프로세스 리스트를 확인할 수 있습니다.
%mem은 메모리 사용률을 나타냅니다. --sort=-%mem 옵션은 메모리 사용률이 높은 순으로 정렬합니다.
ps aux --sort=-%mem | head -n 10
$ ps aux --sort=-%mem | head -n 10
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 792394 1.2 29.2 44983664 9604092 ? Sl Nov22 652:59 java -jar -Djava.io.tmpdir=/opt/ngrinder-controller/lib /opt/ngrinder-controller-3.5.8.war --port 80
mtgisa 3152880 0.8 2.0 24171888 665040 ? Sl Dec20 99:07 java -jar Syncon.jar client.yaml
mtgisa 2043227 0.1 0.4 13060072 144488 ? Sl Dec15 31:29 java -jar ProcessCheck.jar config.yaml
mtgisa 1011520 1.0 0.2 353716 70920 ? S 12:39 0:03 php-fpm: pool www
mtgisa 1011493 0.9 0.2 353664 68600 ? S 12:39 0:03 php-fpm: pool www
mtgisa 1011482 0.9 0.1 361764 63680 ? S 12:39 0:02 php-fpm: pool www
mtgisa 1011698 0.0 0.1 163952 62784 ? S 12:39 0:00 php /app/pado/www/artisan queue:work --max-time=3600
mtgisa 1011697 0.0 0.1 163952 62592 ? S 12:39 0:00 php /app/pado/www/artisan queue:work --max-time=3600
mtgisa 1011445 0.9 0.1 361768 62568 ? S 12:39 0:02 php-fpm: pool www
728x90
4. smem 명령어
smem은 메모리 사용을 좀 더 상세하게 표시하는 도구입니다. -rs mem 옵션은 메모리 사용량에 따라 내림차순으로 정렬합니다.
smem 설치
sudo apt-get update
sudo apt-get install smem
더보기
---
$ sudo apt-get install smem
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
binutils binutils-aarch64-linux-gnu binutils-common blt cpp cpp-11 fontconfig-config fonts-dejavu-core fonts-lyx g++ g++-11 gcc gcc-11 gcc-11-base
gcc-12-base javascript-common libasan6 libatomic1 libbinutils libblas3 libboost-dev libboost1.74-dev libc-dev-bin libc-devtools libc6 libc6-dev libcc1-0
libcrypt-dev libctf-nobfd0 libctf0 libdeflate0 libexpat1-dev libfontconfig1 libfreetype6 libfribidi0 libgcc-11-dev libgcc-s1 libgd3 libgfortran5
libgomp1 libgraphite2-3 libharfbuzz0b libhwasan0 libimagequant0 libisl23 libitm1 libjbig0 libjpeg-turbo8 libjpeg8 libjs-jquery libjs-jquery-ui
libjs-sphinxdoc libjs-underscore liblapack3 liblbfgsb0 liblcms2-2 liblsan0 libmpc3 libmpfr6 libnsl-dev libopenblas-dev libopenblas-pthread-dev
libopenblas0 libopenblas0-pthread libopenjp2-7 libpng16-16 libpython3-dev libpython3.10 libpython3.10-dev libpython3.10-minimal libpython3.10-stdlib
libqhull-r8.0 libraqm0 libstdc++-11-dev libstdc++6 libtcl8.6 libtiff5 libtirpc-dev libtk8.6 libtsan0 libubsan1 libwebp7 libwebpdemux2 libwebpmux3
libxft2 libxpm4 libxrender1 libxsimd-dev libxslt1.1 libxss1 linux-libc-dev manpages manpages-dev python-matplotlib-data python3-appdirs python3-attr
python3-beniget python3-brotli python3-bs4 python3-chardet python3-cycler python3-dateutil python3-decorator python3-dev python3-distutils
python3-fonttools python3-fs python3-gast python3-html5lib python3-kiwisolver python3-lib2to3 python3-lxml python3-lz4 python3-matplotlib python3-mpmath
python3-numpy python3-olefile python3-packaging python3-pil python3-pil.imagetk python3-pkg-resources python3-ply python3-pyparsing python3-pythran
python3-scipy python3-six python3-soupsieve python3-sympy python3-tk python3-tz python3-ufolib2 python3-unicodedata2 python3-webencodings python3.10
python3.10-dev python3.10-minimal rpcsvc-proto tk8.6-blt2.5 tzdata unicode-data x11-common zlib1g-dev
Suggested packages:
binutils-doc blt-demo cpp-doc gcc-11-locales gcc-11-doc gcc-multilib make autoconf automake libtool flex bison gdb gcc-doc apache2 | lighttpd | httpd
libboost-doc libboost1.74-doc libboost-atomic1.74-dev libboost-chrono1.74-dev libboost-container1.74-dev libboost-context1.74-dev
libboost-contract1.74-dev libboost-coroutine1.74-dev libboost-date-time1.74-dev libboost-exception1.74-dev libboost-fiber1.74-dev
libboost-filesystem1.74-dev libboost-graph1.74-dev libboost-graph-parallel1.74-dev libboost-iostreams1.74-dev libboost-locale1.74-dev
libboost-log1.74-dev libboost-math1.74-dev libboost-mpi1.74-dev libboost-mpi-python1.74-dev libboost-numpy1.74-dev libboost-program-options1.74-dev
libboost-python1.74-dev libboost-random1.74-dev libboost-regex1.74-dev libboost-serialization1.74-dev libboost-stacktrace1.74-dev
libboost-system1.74-dev libboost-test1.74-dev libboost-thread1.74-dev libboost-timer1.74-dev libboost-type-erasure1.74-dev libboost-wave1.74-dev
libboost1.74-tools-dev libmpfrc++-dev libntl-dev libboost-nowide1.74-dev glibc-doc libgd-tools libjs-jquery-ui-docs liblcms2-utils libstdc++-11-doc
tcl8.6 tk8.6 libxsimd-doc man-browser python-attr-doc python-cycler-doc python3-genshi python-lxml-doc dvipng ffmpeg fonts-staypuft ghostscript
gir1.2-gtk-3.0 inkscape ipython3 librsvg2-common python-matplotlib-doc python3-cairocffi python3-gi-cairo python3-gobject python3-pyqt5 python3-sip
python3-tornado texlive-extra-utils texlive-latex-extra python-mpmath-doc python3-gmpy2 gfortran python-numpy-doc python3-pytest python-pil-doc
python3-setuptools python-ply-doc python-pyparsing-doc python-scipy-doc texlive-fonts-extra python-sympy-doc tix python3-tk-dbg python3.10-venv
python3.10-doc binfmt-support
Recommended packages:
libnss-nis libnss-nisplus
The following NEW packages will be installed:
binutils binutils-aarch64-linux-gnu binutils-common blt cpp cpp-11 fontconfig-config fonts-dejavu-core fonts-lyx g++ g++-11 gcc gcc-11 gcc-11-base
javascript-common libasan6 libatomic1 libbinutils libblas3 libboost-dev libboost1.74-dev libc-dev-bin libc-devtools libc6-dev libcc1-0 libcrypt-dev
libctf-nobfd0 libctf0 libdeflate0 libexpat1-dev libfontconfig1 libfreetype6 libfribidi0 libgcc-11-dev libgd3 libgfortran5 libgomp1 libgraphite2-3
libharfbuzz0b libhwasan0 libimagequant0 libisl23 libitm1 libjbig0 libjpeg-turbo8 libjpeg8 libjs-jquery libjs-jquery-ui libjs-sphinxdoc libjs-underscore
liblapack3 liblbfgsb0 liblcms2-2 liblsan0 libmpc3 libmpfr6 libnsl-dev libopenblas-dev libopenblas-pthread-dev libopenblas0 libopenblas0-pthread
libopenjp2-7 libpng16-16 libpython3-dev libpython3.10-dev libqhull-r8.0 libraqm0 libstdc++-11-dev libtcl8.6 libtiff5 libtirpc-dev libtk8.6 libtsan0
libubsan1 libwebp7 libwebpdemux2 libwebpmux3 libxft2 libxpm4 libxrender1 libxsimd-dev libxslt1.1 libxss1 linux-libc-dev manpages manpages-dev
python-matplotlib-data python3-appdirs python3-attr python3-beniget python3-brotli python3-bs4 python3-chardet python3-cycler python3-dateutil
python3-decorator python3-dev python3-distutils python3-fonttools python3-fs python3-gast python3-html5lib python3-kiwisolver python3-lib2to3
python3-lxml python3-lz4 python3-matplotlib python3-mpmath python3-numpy python3-olefile python3-packaging python3-pil python3-pil.imagetk
python3-pkg-resources python3-ply python3-pyparsing python3-pythran python3-scipy python3-six python3-soupsieve python3-sympy python3-tk python3-tz
python3-ufolib2 python3-unicodedata2 python3-webencodings python3.10-dev rpcsvc-proto smem tk8.6-blt2.5 tzdata unicode-data x11-common zlib1g-dev
The following packages will be upgraded:
gcc-12-base libc6 libgcc-s1 libpython3.10 libpython3.10-minimal libpython3.10-stdlib libstdc++6 python3.10 python3.10-minimal
9 upgraded, 134 newly installed, 0 to remove and 53 not upgraded.
Need to get 153 MB of archives.
After this operation, 665 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
...
---
smem -rs maps
$ smem -rs maps
PID User Command Swap USS PSS RSS
2238 root /usr/bin/python3 /usr/bin/s 0 12164 12164 12168
1 root bash 0 3332 3332 3336
5. pmap 명령어
특정 프로세스의 메모리 맵을 확인하기 위해 pmap 명령어를 사용할 수 있습니다. 에는 확인하고자 하는 프로세스의 ID를 넣어주면 됩니다.
pmap 1
$ pmap 1
1: bash
0000aaaadad10000 1332K r-x-- bash
0000aaaadae6c000 20K r---- bash
0000aaaadae71000 36K rw--- bash
0000aaaadae7a000 44K rw--- [ anon ]
0000aaaafd730000 396K rw--- [ anon ]
0000ffff9c3b0000 1572K r-x-- libc.so.6 (deleted)
0000ffff9c539000 60K ----- libc.so.6 (deleted)
0000ffff9c548000 16K r---- libc.so.6 (deleted)
0000ffff9c54c000 8K rw--- libc.so.6 (deleted)
0000ffff9c54e000 48K rw--- [ anon ]
0000ffff9c560000 176K r-x-- libtinfo.so.6.3
0000ffff9c58c000 60K ----- libtinfo.so.6.3
0000ffff9c59b000 16K r---- libtinfo.so.6.3
0000ffff9c59f000 4K rw--- libtinfo.so.6.3
0000ffff9c5a7000 172K r-x-- ld-linux-aarch64.so.1 (deleted)
0000ffff9c5d7000 8K rw--- [ anon ]
0000ffff9c5dc000 8K rw--- [ anon ]
0000ffff9c5de000 8K r---- [ anon ]
0000ffff9c5e0000 4K r-x-- [ anon ]
0000ffff9c5e1000 8K r---- ld-linux-aarch64.so.1 (deleted)
0000ffff9c5e3000 8K rw--- ld-linux-aarch64.so.1 (deleted)
0000fffff8d59000 132K rw--- [ stack ]
total 4136K
$ sudo apt install htop 패키지 목록 읽기... 완료 종속성 트리 구축... 완료 상태 정보 읽기... 완료 다음 추가 패키지가 설치됩니다: libnl-3-200 libnl-genl-3-200 권장 패키지: lm -sensors lsof strace 다음 새 패키지가 설치됩니다: htop libnl-3-200 libnl-genl-3-200 0개 업그레이드, 3개 새로 설치, 0개 제거, 53개 업그레이드 안 함. 197kB의 아카이브를 가져와야 합니다. 이 작업 후에는 566kB의 추가 디스크 공간이 사용됩니다. 계속하시겠습니까? [예/아니요] ...
728x90
'리눅스' 카테고리의 다른 글
nload 사용법 (0) | 2023.12.28 |
---|---|
bmon 사용법 (0) | 2023.12.28 |
PHP 8.1에서 MongoDB 확장 모듈을 업그레이드하는 방법 (0) | 2023.12.19 |
macOS에서 OpenJDK를 사용하여 JDK 17을 설치하는 방법 (0) | 2023.12.18 |
스크립트로 크론 작업을 추가하는 방법 (0) | 2023.12.11 |