我知道 socat 被描述为 netcat 的“更高级”版本,但实际区别是什么?说在 netcat 中可以做的所有事情也可以在 socat 中做,是否正确?相反的呢(你可以用 socat 做的一切也可以在 netcat 中完成)?
我注意到在我刚从 EC2 启动的新 CentOS 映像上,ulimit 默认值是 1024 个打开的文件,但是 /proc/sys/fs/file-max 设置为 761,408,我想知道这两个限制是如何工作的一起。我猜 ulimit -n 是每个用户的文件描述符数量限制,而 /proc/sys/fs/file-max 是系统范围的?如果是这种情况,假设我已经以同一用户身份登录了两次——每个登录用户的打开文件数是否有 1024 个限制,或者每个登录的用户之间是否有 1024 个组合打开文件的限制——在用户?
如果您的系统从未打开过很多文件,那么将最大文件描述符设置为非常高的数字是否会对性能产生很大影响?
我正在尝试为 ubuntu 机器上的所有用户提高打开文件描述符的最大值。
我已将以下几行添加到/etc/security/limits.conf
:
* soft nofile 100000
* hard nofile 100000
Run Code Online (Sandbox Code Playgroud)
而且,基于这个问题,我检查了以下/etc/pam.conf
设置pam_limits
:
$ grep "pam_limits" /etc/pam.d/*
/etc/pam.d/atd:session required pam_limits.so
/etc/pam.d/common-session:session required pam_limits.so
/etc/pam.d/cron:session required pam_limits.so
/etc/pam.d/login:session required pam_limits.so
/etc/pam.d/sshd:session required pam_limits.so
/etc/pam.d/su:session required pam_limits.so
/etc/pam.d/sudo:session required pam_limits.so
Run Code Online (Sandbox Code Playgroud)
我的 file-max 似乎没问题:
$ cat /proc/sys/fs/file-max
762659
Run Code Online (Sandbox Code Playgroud)
然而,当我检查时,我仍然有默认的 1024 ulimit -a
:
$ ulimit -a | grep files
open files (-n) 1024
Run Code Online (Sandbox Code Playgroud)
我还能检查什么?
是否可以查看 nginx 正在主动提供哪些 URL(即,查看正在响应的 URL,而不是 nginx 已完成响应的 URL)。
我想看到这些,因为我正在使用nginx push 模块并试图弄清楚为什么活动(和写入)连接的数量一直在增加。这些是长时间保持打开状态的请求,所以我希望能够看到 nginx 目前正在处理哪些 URL,理想情况下还有一些关于这些客户端的信息(即用户代理、IP 地址、都是有帮助的)。