###概要
Squidのファイルディスクリプタ(FD)を増やすにあたり、
そもそもFDがどれだけメモリを使用するか気になりました。
自分なりに調査をしましたが結論が出ませんでした。
知見がある方教えてください。
###調査過程
squidのPIDを確認する。
text
1# ps auxww | grep -v grep | grep squid 2root 1398 1 0 Sep13 ? 00:00:00 squid -f /etc/squid/squid.conf 3squid 1401 1398 0 Sep13 ? 00:00:00 (squid-1) -f /etc/squid/squid.conf
サブプロセスsquid(1401)は親プロセスsquid(1398)からfolkされたため、
親プロセスのFDテーブルが複製されたため親プロセスとサブプロセスの
どちらで調査してもよい?
# pstree -p init(1)-+-atd(1416) (省略) |-squid(1398)---squid(1401)
/proc/{PID}/fd/ を ls -li すると、Disk inodeが"15018"となっているが、
実態は Memory Inode "15014" へのシンボリックリンク?
# ls -li /proc/1401/fd/13 15018 lrwx------. 1 squid squid 64 9月 14 00:19 2017 13 -> socket:[15014]
ここでの IO Block 1024byte(=1KB) はシンボリックリンク自体のサイズでファイルシステム上のサイズ?
# stat /proc/1401/fd/13 File: `13' -> `socket:[15014]' Size: 64 Blocks: 0 IO Block: 1024 シンボリックリンク Device: 3h/3d Inode: 15018 Links: 1 Access: (0700/lrwx------) Uid: ( 23/ squid) Gid: ( 23/ squid) Access: 2017-09-14 00:19:55.100007857 +0900 Modify: 2017-09-14 00:19:49.941010872 +0900 Change: 2017-09-14 00:19:49.941010872 +0900
ここでの IO Block 4096byte(4KB) はソケットバッファのサイズでメモリ上のサイズ?
# stat -L /proc/1401/fd/13 File: `13' Size: 0 Blocks: 0 IO Block: 4096 ソケット Device: 6h/6d Inode: 15014 Links: 1 Access: (0777/srwxrwxrwx) Uid: ( 23/ squid) Gid: ( 23/ squid) Access: 1970-01-01 09:00:00.000000000 +0900 Modify: 1970-01-01 09:00:00.000000000 +0900 Change: 1970-01-01 09:00:00.000000000 +0900
カーネルパラメータでは、TCPソケットバッファのオープン時のデフォルトの値は、
受信バッファ 87,380byte、送信バッファ 16,384byte となっているが、
上記の IO Block サイズ 4096KBが正しいのか?
# cat /proc/sys/net/ipv4/tcp_rmem 4096 87380 4194304 # cat /proc/sys/net/ipv4/tcp_wmem 4096 16384 4194304
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー