1. PID ã±â
ps -ef ¸í·É°ú grep ¹® Á¶ÇÕÀ¸·Î ½ÇÇà ÁßÀÎ ¾îÇø®ÄÉÀ̼ÇÀÇ PID ¸¦ °£´ÜÈ÷ ãÀ» ¼ö ÀÖ´Ù.
[zany@titan ~]$ ps -ef | grep mysqld
zany 1812 1 0 Aug28 ? 00:00:00 /bin/sh /home/zany/opt/mysql/bin/mysqld_safe --defaults-file=/home/zany/opt/mysql/my.cnf --ledir=/home/zany/opt/mysql/bin --basedir=/home/zany/opt/mysql
zany 2108 1812 2 Aug28 ? 01:11:32 /home/zany/opt/mysql/bin/mysqld --defaults-file=/home/zany/opt/mysql/my.cnf --basedir=/home/zany/opt/mysql --datadir=/home/zany/opt/mysql/data --plugin-dir=/home/zany/opt/mysql/lib/plugin --log-error=/home/zany/opt/mysql/log/mysqld-err.log --pid-file=/home/zany/opt/mysql/tmp/mysqld.pid --socket=/home/zany/opt/mysql/tmp/mysql.sock --port=3306
zany 59381 59296 0 15:37 pts/2 00:00:00 grep mysqld
2. PID 2108 °¡ ¿°í ÀÖ´Â ÆÄÀÏ È®ÀÎ (lsof; List open files)
lsof ¸í·ÉÀ» ÀÌ¿ëÇÏ¸é ¾Õ¼ È®ÀÎÇß´ø ¾îÇø®ÄÉÀ̼ÇÀÌ ¿°í ÀÖ´Â ÆÄÀÏÀ» È®ÀÎ ÇÒ ¼ö ÀÖ´Ù.
lsof -p [PID]
lsof -a -p [PID]
[zany@titan ~]$ lsof -p 2108
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 2108 zany cwd DIR 8,7 4096 24250681 /home/zany/opt/mysql-5.7.13-linux-glibc2.5-x86_64/data
mysqld 2108 zany rtd DIR 8,2 4096 2 /
mysqld 2108 zany txt REG 8,7 252283693 24117671 /home/zany/opt/mysql-5.7.13-linux-glibc2.5-x86_64/bin/mysqld
mysqld 2108 zany mem REG 8,2 110960 393258 /lib64/libresolv-2.12.so
mysqld 2108 zany mem REG 8,2 27424 393246 /lib64/libnss_dns-2.12.so
mysqld 2108 zany mem REG 8,2 65960 393248 /lib64/libnss_files-2.12.so
mysqld 2108 zany mem REG 8,2 10312 393221 /lib64/libfreebl3.so
mysqld 2108 zany mem REG 8,2 1923352 393232 /lib64/libc-2.12.so
mysqld 2108 zany mem REG 8,2 90880 393218 /lib64/libgcc_s-4.4.7-20120601.so.1
mysqld 2108 zany mem REG 8,2 596360 393240 /lib64/libm-2.12.so
mysqld 2108 zany mem REG 8,2 987096 656440 /usr/lib64/libstdc++.so.6.0.13
mysqld 2108 zany mem REG 8,2 43944 393260 /lib64/librt-2.12.so
mysqld 2108 zany mem REG 8,2 19536 393238 /lib64/libdl-2.12.so
mysqld 2108 zany mem REG 8,2 40400 393236 /lib64/libcrypt-2.12.so
mysqld 2108 zany mem REG 8,2 3944 393580 /lib64/libaio.so.1.0.1
mysqld 2108 zany mem REG 8,2 142688 393256 /lib64/libpthread-2.12.so
mysqld 2108 zany mem REG 8,2 154664 393225 /lib64/ld-2.12.so
mysqld 2108 zany 0r CHR 1,3 0t0 4601 /dev/null
mysqld 2108 zany 1w REG 8,7 473736499 23857568 /home/zany/opt/mysql-5.7.13-linux-glibc2.5-x86_64/log/mysqld-err.log
mysqld 2108 zany 2w REG 8,7 473736499 23857568 /home/zany/opt/mysql-5.7.13-linux-glibc2.5-x86_64/log/mysqld-err.log
mysqld 2108 zany 3uW REG 8,7 146800640 24250682 /home/zany/opt/mysql-5.7.13-linux-glibc2.5-x86_64/data/ibdata1
mysqld 2108 zany 4u REG 8,6 0 16 /tmp/ib0z8NtZ (deleted)
mysqld 2108 zany 5u REG 8,6 0 17 /tmp/ibp0GSds (deleted)
mysqld 2108 zany 6u REG 8,6 0 63 /tmp/ibTqQXXU (deleted)
... »ý·« ...
lsof + wc ¸í·ÉÀ» Á¶ÇÕÇÏ¿© ¶óÀÎ ¼ö¸¦ ¼¼¾îº¼ ¼ö ÀÖ´Ù.
¶óÀμö´Â ¿ì¸®°¡ ¿øÇÏ´Â ¿·ÁÁø ÆÄÀÏÀÇ °³¼ö°¡ µÈ´Ù.
lsof -p [PID] | wc -l
[zany@titan ~]$ lsof -p 2108 | wc -l
203
¡Ü /proc/[PID]/fd ¿Í ºñ±³.
/proc/[PID]/fd µð·ºÅ丮ÀÇ ÆÄÀÏÀ» ¿°ÅÇÏ¿© ¾îÇø®ÄÉÀ̼ÇÀÌ ¿¾î³õÀº file descriptor ¸¦ È®ÀÎ ÇÒ ¼öµµ ÀÖ´Ù.
[zany@titan ~]$ ls -l /proc/2108/fd | wc -l
186
[zany@titan ~]$ lsof -p 2108 | wc -l
203
ÇÏÁö¸¸, ÀÌ´Â lsof -a [PID] ¸í·ÉÀÇ °á°ú¿Í ´Ù¸¦ ¼ö ÀÖ´Ù.
lsof ¸í·ÉÀº ŸÀÌƲ ¶óÀÎÀÌ 1ÁÙ ºÙ´Âµ¥´Ù°¡ ¸Þ¸ð¸®¿¡ ¸ÅÇÎµÈ .so ÆÄÀϵµ ÇÔ²² º¸¿©ÁÖÁö¸¸
/proc/[PID]/fd µð·ºÅ丮´Â 'open file descriptor' ±âÁØÀ¸·Î¸¸ º¸¿©Áֱ⠶§¹®ÀÌ´Ù.
À̸¦ Á¦°ÅÇÏ¿© È®ÀÎÇÏ¸é ¾óÃß ºñ½ÁÇÑ ¼öÄ¡¸¦ º¸¿©ÁÜÀ» ¾Ë ¼ö ÀÖ´Ù.
https://serverfault.com/questions/323810/whats-the-difference-between-lsof-p-pid-wc-l-and-ls-proc-pid-fd-w
Âü°í) ¸Þ¸ð¸® ¸ÅÇÎ Á¤º¸´Â /proc//maps ÆÄÀÏÀ» cat ¸í·ÉÀ¸·Î º¸¸é È®ÀÎ ÇÒ ¼ö ÀÖ´Ù.
[zany@titan ~]$ ls -l /proc/2108/fd | wc -l
186
[zany@titan ~]$ lsof -p 2108 | grep -v mem | grep -v -e '^COMMAND ' | wc -l
188
lsof ¸¦ »ç¿ëÇÏ¿© ÇÁ·Î¼¼½º°¡ »ç¿ëÇÏ°í ÀÖ´Â file descriptor ¼ö¸¦ ¾Ë·Á¸é
¾Æ·¡ ¸í·É Á¤µµ°¡ Àû´çÇÒ °ÍÀÌ´Ù (lsof ¸í·ÉÀÇ Å¸ÀÌƲ ¶óÀÎÀ» Á¦°Å)
lsof -p [PID] | grep -v -e '^COMMAND ' | wc -l
[zany@titan ~]$ lsof -p 2108 | grep -v -e '^COMMAND ' | wc -l
202
¡Ü Ãß°¡
apache tomcat °°Àº °æ¿ì, tomcat Ȩµð·ºÅ丮°¡ $CATALINA_HOME ȯ°æº¯¼ö·Î ÁöÁ¤µÇ¾î ÀÖ´Ù¸é,
¾Õ¼ Æ÷½ºÆà Çß´ø findps, findpid ½© ½ºÅ©¸³Æ® ¸í·É°ú Á¶ÇÕÇÏ¿© ¾Æ·¡¿Í °°ÀÌ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.
http://home.zany.kr:9003/board/bView.asp?bCode=11&aCode=14150
[zany@titan ~]$ lsof -p $(findpid `echo $CATALINA_HOME`) | grep -v -e '^COMMAND ' | wc -l
120
lsof -p [PID] ¸í·É¿¡ ¿©·¯°³ÀÇ PID ¸¦ ÁÖ·Á¸é ÄÞ¸¶·Î ºÐ¸®ÇÏ¿© PID ¸¦ ³ª¿ÇÏ¸é µÈ´Ù.
findpid °á°ú°¡ ¿©·¯°³ ÀÏ °æ¿ì Ãâ·ÂµÇ´Â PID µéÀ» tr ¸í·ÉÀ» »ç¿ëÇÏ¿© ÄÞ¸¶·Î ºÐ¸®ÇÏ¿© ÀÎÀÚ·Î ÁÖÀÔÇÏ¸é µÈ´Ù.
lsof -p [PID1,PID2,PID3]
findpid [grep-string] | tr '\012' ,
[zany@titan ~]$ lsof -p $(findpid `echo $MYSQL_HOME` | tr '\012' ,)
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld_sa 1812 zany cwd DIR 8,7 4096 23724059 /home/zany/bin
mysqld_sa 1812 zany rtd DIR 8,2 4096 2 /
mysqld_sa 1812 zany txt REG 8,2 906248 2228226 /bin/bash
mysqld_sa 1812 zany mem REG 8,2 99160384 655987 /usr/lib/locale/locale-archive
mysqld_sa 1812 zany mem REG 8,2 1923352 393232 /lib64/libc-2.12.so
mysqld_sa 1812 zany mem REG 8,2 19536 393238 /lib64/libdl-2.12.so
mysqld_sa 1812 zany mem REG 8,2 132408 393274 /lib64/libtinfo.so.5.7
mysqld_sa 1812 zany mem REG 8,2 154664 393225 /lib64/ld-2.12.so
mysqld_sa 1812 zany mem REG 8,2 144924 787577 /usr/share/locale/ko/LC_MESSAGES/libc.mo
mysqld_sa 1812 zany mem REG 8,2 26060 656247 /usr/lib64/gconv/gconv-modules.cache
mysqld_sa 1812 zany 0r CHR 1,3 0t0 4601 /dev/null
mysqld_sa 1812 zany 1w CHR 1,3 0t0 4601 /dev/null
mysqld_sa 1812 zany 2u CHR 136,0 0t0 3 /dev/pts/0 (deleted)
mysqld_sa 1812 zany 255r REG 8,7 26304 24117678 /home/zany/opt/mysql-5.7.13-linux-glibc2.5-x86_64/bin/mysqld_safe
mysqld 2108 zany cwd DIR 8,7 4096 24250681 /home/zany/opt/mysql-5.7.13-linux-glibc2.5-x86_64/data
mysqld 2108 zany rtd DIR 8,2 4096 2 /
mysqld 2108 zany txt REG 8,7 252283693 24117671 /home/zany/opt/mysql-5.7.13-linux-glibc2.5-x86_64/bin/mysqld
mysqld 2108 zany mem REG 8,2 110960 393258 /lib64/libresolv-2.12.so
mysqld 2108 zany mem REG 8,2 27424 393246 /lib64/libnss_dns-2.12.so
mysqld 2108 zany mem REG 8,2 65960 393248 /lib64/libnss_files-2.12.so
mysqld 2108 zany mem REG 8,2 10312 393221 /lib64/libfreebl3.so
[zany@titan ~]$ lsof -p $(findpid `echo $MYSQL_HOME` | tr '\012' ,) | grep -v -e '^COMMAND ' | wc -l
216
¡Ü Âü°í »çÇ×
List File Descriptors in Kernel Memory
Type the following command:
# sysctl fs.file-nr
Sample outputs:
fs.file-nr = 1020 0 70000
Where,
1020 The number of allocated file handles.
0 The number of unused-but-allocated file handles.
70000 The system-wide maximum number of file handles.
You can use the following to find out or set the system-wide maximum number of file handles:
# sysctl fs.file-max
Sample outputs:
fs.file-max = 70000
See how to set the system-wide maximum number of file handles under Linux for more information.
https://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/
¡Ü /proc/[PID]/file & procfs ÆÄÀÏ ½Ã½ºÅÛ
/proc (¶Ç´Â procfs) ´Â ºÎÆà ÈÄ µ¿ÀûÀ¸·Î ÀÚµ¿ »ý¼ºµÇ´Â ¼öµµ ÆÄÀÏ ½Ã½ºÅÛ(pseudo-file system)À̸ç
Ä¿³Î Á¤º¸¿¡ Á¢±ÙÇÒ ¶§ »ç¿ëµÈ´Ù. procfs ´Â ¼Ö¶ó¸®½º(Solaris), BSD, AIX µî ´Ù¸¥ UNIX °è¿ OS ¿¡¼µµ »ç¿ëµÈ´Ù.
¾Õ¼ Æ÷½ºÆà ÇÑ ³»¿ëÀ¸·Î ÀÌÁ¦ ÇÁ·Î¼¼½º°¡ ¾ó¸¶³ª ¸¹Àº ÆÄÀÏ µð½ºÅ©¸³ÅÍ(file descriptors)¸¦ »ç¿ëÇÏ°í ÀÖ´ÂÁö È®ÀÎ ÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù.
/proc/[PID]/file µð·ºÅ丮¿¡¼ ´õ ¸¹Àº Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ´Ù.
¡Ü /proc/[PID]/cmdline : ÇÁ·Î¼¼½º ÀÎÀÚ°ª
[zany@titan ~]$ cat /proc/2108/cmdline | tr '\0' '\n'
/home/zany/opt/mysql/bin/mysqld
--defaults-file=/home/zany/opt/mysql/my.cnf
--basedir=/home/zany/opt/mysql
--datadir=/home/zany/opt/mysql/data
--plugin-dir=/home/zany/opt/mysql/lib/plugin
--log-error=/home/zany/opt/mysql/log/mysqld-err.log
--pid-file=/home/zany/opt/mysql/tmp/mysqld.pid
--socket=/home/zany/opt/mysql/tmp/mysql.sock
--port=3306
¡Ü /proc/[PID]/cwd : ÇÁ·Î¼¼½ºÀÇ ÇöÀç ÀÛ¾÷ µð·ºÅ丮 (½Éº¼¸¯ ¸µÅ©·Î °É·ÁÀÖ´Ù)
[zany@titan ~]$ ls -al /proc/2108 | grep cwd
lrwxrwxrwx 1 zany mysql 0 2017-08-29 17:14 cwd -> /home/zany/opt/mysql-5.7.13-linux-glibc2.5-x86_64/data
¡Ü /proc/[PID]/exe : ½ÇÁ¦ ÇÁ·Î¼¼½º ½ÇÇà ÆÄÀÏ °æ·Î (½Éº¼¸¯ ¸µÅ©·Î °É·ÁÀÖ´Ù)
[zany@titan ~]$ ls -al /proc/2108 | grep exe
lrwxrwxrwx 1 zany mysql 0 2017-08-29 17:14 exe -> /home/zany/opt/mysql-5.7.13-linux-glibc2.5-x86_64/bin/mysqld
¡Ü /proc/[PID]/environ : ÇÁ·Î¼¼½º°¡ »ç¿ëÇÏ°í Àִ ȯ°æ°ª
[zany@titan ~]$ cat /proc/2108/environ | tr '\0' '\n' | sort
ACTIVEMQ_HOME=/home/zany/opt/apache-activemq/current
CATALINA_HOME=/home/zany/opt/apache-tomcat/current
CVS_RSH=ssh
GEM_HOME=/usr/local/rvm/gems/ruby-1.9.3-p551
GEM_PATH=/usr/local/rvm/gems/ruby-1.9.3-p551:/usr/local/rvm/gems/ruby-1.9.3-p551@global
G_BROKEN_FILENAMES=1
HISTCONTROL=ignoredups
HISTSIZE=1000
HOME=/home/zany
HOSTNAME=titan
IRBRC=/usr/local/rvm/rubies/ruby-1.9.3-p551/.irbrc
JAVA_HOME=/home/zany/opt/java/current
LANG=ko_KR.UTF-8
LESSOPEN=||/usr/bin/lesspipe.sh %s
LOGNAME=zany
... »ý·« ...
¡Ü /proc/[PID]/root : ÇÁ·Î¼¼½º°¡ ¹Ù¶óº¸°í ÀÖ´Â ·çÆ® °æ·Î
(chroot ·Î ¹Ù²ÙÁö ¾Ê´Â ÀÌ»ó ´ëºÎºÐÀÇ ÇÁ·Î¼¼½º´Â / °¡ µÉ °ÍÀÌ´Ù)
[zany@titan ~]$ ls -al /proc/2108 | grep root
dr-xr-xr-x 184 root root 0 2017-08-28 21:23 ..
lrwxrwxrwx 1 zany mysql 0 2017-08-29 17:14 root -> /
¡Ü /proc/[PID]/status : ÇÁ·Î¼¼½ºÀÇ ½ÇÇà »óųª ¸Þ¸ð¸® »ç¿ë·® µî ±âº» Á¤º¸
[zany@titan ~]$ cat /proc/2108/status
Name: mysqld
State: S (sleeping)
Tgid: 2108
Pid: 2108
PPid: 1812
TracerPid: 0
Uid: 500 500 500 500
Gid: 501 501 501 501
Utrace: 0
FDSize: 256
Groups: 501
VmPeak: 2541484 kB
VmSize: 2475948 kB
... »ý·« ...
¡Ü /proc/[PID]/task : hard links to any tasks that have been started by this (the parent) process.
¾î¶»°Ô º¸´Â°ÇÁö ¸ð¸£°Ú´Ù..
|