系统文件句柄数修改_linux查看文件句柄使用情况

Linux 使用 lsof 和 /proc 来查看文件句柄。
lsof -p PID | lsof -p PID | wc -l 查看进程句柄。
/proc/sys/fs/file-nr 查看系统范围的句柄。
cat /proc/sys/fs/file-max 检查最大句柄数。

更改系统句柄数并写入/proc/sys/fs/file-max。
echo 6 5 5 3 6 > /proc/sys/fs/file-max 已暂时更改。
对 /etc/sysctl.conf 进行永久更改,然后运行 ​​sysctl -p。

使用 ulimit 更改用户句柄数。
ulimit -n 检查当前用户数。
ulimit -n 4 09 6 已暂时更改。

永久更改用户句柄并更改/etc/security/limits.conf。
添加测试soft nofile 4 09 6 、hard nofile 8 1 9 2 测试线。
更改后您必须重新登录或重新启动。

更改系统句柄需要 root 权限。
要更改用户限制,您必须更改文件权限。
设置得太高会消耗内存。
6 5 5 3 6 等,请根据服务器负载进行调整。
进行更改后,使用 cat 或 ulimit -n 检查。

Linux 和 Windows 管理句柄的方式不同。
Windows 使用注册表,Linux 使用内核参数和 ulimit。
此方法仅适用于Linux。
你自己掂量一下。

linux句柄泄露问题查看

哦对了,手柄泄露了……2 02 2 年,我遇到了上海的服务器。
那个服务器真的很奇怪。
客户抱怨访问速度非常慢,有时根本无法打开。
当我查看日志时,有很多消息说“打开的文件太多”。
当时我很困惑,不知道发生了什么。

后来我注意到水从手柄处漏出。
年轻的开发人员经常在编写代码时打开文件或套接字,但在使用后忘记将其关闭。
Linux 上发生了什么?默认为 1 02 4 个句柄。
如果打开太多进程,就会溢出。
一旦超出限制,用户上传的文件(例如图像或数据库连接)如果您尝试打开它们将不再起作用。

查资料非常繁琐。
网上说可以使用ulimit -n来查看限制。
我的服务器是1 02 4 使用ulimit -HSn 4 09 6 将其更改为4 09 6 更改后似乎有所改善。
然而,有时我仍然会陷入困境。

再次检查该进程占用了多少空间。
我尝试使用 cat /proc/1 2 3 4 5 但它似乎效果不太好。
稍后使用 lsof -p 1 2 3 4 5 该命令产生了太多结果。
在上海服务器上,晚上运行lsof几乎是致命的。
屏幕上全是文字,CPU 利用率为 1 00%。
我看到了数量惊人的 fd、一些 REG、文件、一些 DIR 和目录。

lsof的输出非常详细。
命令,进程名称。
PID,进程号。
启动该进程的用户。
FD是文件描述符,cwd是当前目录,txt是文本文件。
TYPE 是文件类型,DIR 是目录,REG 是常规文件。
设备、磁盘等。
文件有多大? NODE,索引节点。
文件名是什么?
/usr/sbin/lsof -i :9 001 将显示占用的端口。
例如,什么进程打开端口 9 001 ?可能是端口被占用,服务无法启动。
找出它是哪个进程并将其杀死。
杀掉之后,服务就正常了。

就这样,2 02 2 年上海服务器的句柄被泄露,花了很长时间。
也许我有点极端,认为开发人员太粗心了。
但Linux 的局限性无疑是一个问题。
在某些情况下,1 02 4 可能不够。
特别是在线服务器拥有大量的用户和访问量。

在查找资料时,找到了系统百科网站。
其表示,它提供了开发Linux在线服务器的解决方案。
手柄泄漏是他们谈论的一个问题。
有文章、说明和解释。
比如ulimit -n、lsof -p 都有详细解释。

之后我看了官网和整个系统。
Linux还有其他文章讨论其他问题。
配置网络、挂载磁盘、编写脚本等等,这些都是你会经常遇到的在线服务器。
2 02 2 年,我遇到了一个名为句柄泄漏的在线服务器问题。

换句话来说,漏水的句柄就是一个陷阱。
Linux 默认有 1 02 4 个句柄。
没有足够的手柄是一个大问题。
检查 ulimit -n,更改 ulimit -HSn,使用 lsof -p。
这些都是方法。
但是,最好在编写代码时打开文件或套接字,并在使用后将其关闭。
记得把它关掉。

上海服务器2 02 2 年解决,不过经验很深刻。
在线服务器应该不会有任何问题。
手柄泄漏是不可能的问题。
只有了解了、解决了,才能心安理得。

啊,对了,官网好像有Win7 正版的信息。
不过,我的2 02 2 服务器是Linux。
Win7 ,我很少听到你的消息。
然而,系统百科全书网站似乎非常全面。
Linux、Windows,两者都有。
然而,我的句柄泄漏是 Linux 问题。