ファイルディスクリプタとは
プログラムがアクセスするファイルや標準入出力などをOSが識別するために用いる識別子
ファイルディスクリプタには、識別子とともにファイル名、ファイルサイズ、プログラムが操作中のファイル内の位置、ファイル作成、更新日時などの情報が含まれており、OSは識別子によってどのファイルを操作するかを判断する
OS全体でオープン可能なファイルディスクリプタ数
lv /proc/sys/fs/file-max 98912
1プロセスで同時にオープンできるファイルディスクリプタ数
ulimit -a | grep "open files" open files (-n) 1024
プロセスで利用可能なファイルディスクリプタ数(mysqlの場合)
lv /proc/`ps afx | grep [m]ysqld | cut -f1 -d" "`/limits | grep "Max open files" Max open files 1024 4096 files
現在利用中のファイルディスクリプタ数(mysqlの場合)
ファイルを開いているプロセス情報を表示する
# lsof -c mysql COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld_sa 10387 root cwd DIR 202,0 4096 2 / mysqld_sa 10387 root rtd DIR 202,0 4096 2 / mysqld_sa 10387 root txt REG 202,0 975488 393357 /bin/bash mysqld_sa 10387 root mem REG 202,0 2508736 3458 /usr/lib/locale/locale-archive mysqld_sa 10387 root mem REG 202,0 1599504 393317 /lib/x86_64-linux-gnu/libc-2.13.so mysqld_sa 10387 root mem REG 202,0 14768 393332 /lib/x86_64-linux-gnu/libdl-2.13.so mysqld_sa 10387 root mem REG 202,0 167952 393401 /lib/x86_64-linux-gnu/libtinfo.so.5.9 mysqld_sa 10387 root mem REG 202,0 136936 393795 /lib/x86_64-linux-gnu/ld-2.13.so mysqld_sa 10387 root mem REG 202,0 26066 2250 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache mysqld_sa 10387 root 0r CHR 1,3 0t0 1204 /dev/null mysqld_sa 10387 root 1w CHR 1,3 0t0 1204 /dev/null mysqld_sa 10387 root 2w CHR 1,3 0t0 1204 /dev/null mysqld_sa 10387 root 255r REG 202,0 27565 14188 /usr/bin/mysqld_safe mysqld 11028 mysql cwd DIR 202,0 4096 134897 /var/lib/mysql mysqld 11028 mysql rtd DIR 202,0 4096 2 / mysqld 11028 mysql txt REG 202,0 14512336 14185 /usr/sbin/mysqld mysqld 11028 mysql mem REG 202,0 47616 393334 /lib/x86_64-linux-gnu/libnss_files-2.13.so mysqld 11028 mysql mem REG 202,0 43552 393330 /lib/x86_64-linux-gnu/libnss_nis-2.13.so mysqld 11028 mysql mem REG 202,0 89056 393328 /lib/x86_64-linux-gnu/libnsl-2.13.so (略)