很多同学在使用erlang的过程中, 碰到了很奇怪的问题, 后来查明都是文件句柄不够用了, 因为系统默认的是每个进程1024. 所以我们有必要在程序运行的时候, 了解这些信息, 以便诊断和预警.
下面的这个程序就演示了这个如何查看节点的可用句柄数目和已用句柄数的功能.
首先确保你已经安装了lsof, 我的系统是ubuntu可以这样安装.
root@ubuntu:~# apt-get -y install lsof
root@ubuntu:~# cat fd.erl
Java代码 收藏代码
-module(fd).
-export([start/0]).
get_total_fd_ulimit() ->
{MaxFds, _} = string:to_integer(os:cmd("ulimit -n")),
MaxFds.
get_total_fd() -> get_total_fd(os:type()).
get_total_fd({unix, Os})
when Os =:= linux orelse
Os =:= darwin orelse
Os =:= freebsd orelse Os =:= sunos ->
get_total_fd_ulimit();
get_total_fd(_) -> unknown.
get_used_fd_lsof() ->
Lsof = os:cmd("lsof -d \"0-9999999\" -lna -p " ++
os:getpid()),
string:words(Lsof, $\n).
get_used_fd() -> get_used_fd(os:type()).
get_used_fd({unix, Os})
when Os =:= linux orelse
Os =:= darwin orelse Os =:= freebsd ->
get_used_fd_lsof();
get_used_fd(_) -> unknown.
start()->
io:format("total fd: ~p~n"
"used fd: ~p~n", [get_total_fd(), get_used_fd()]),
halt(0).
root@ubuntu:~# erlc fd.erl
root@ubuntu:~# ulimit -n 1024
root@ubuntu:~# erl -noshell -s fd
total fd: 1024
used fd: 10
root@ubuntu:~# ulimit -n 10240
root@ubuntu:~# erl -noshell -s fd
total fd: 10240
used fd: 10
root@ubuntu:~#
分享到:
相关推荐
在IT行业中,尤其是在编程领域,文件句柄是一个重要的概念,它是操作系统用来标识和管理打开文件的一种方式。在易语言中,处理文件句柄的操作能够帮助开发者更高效地进行文件操作。"易语言根据文件句柄取文件路径"是...
在这个例子中,`打开文件`函数用于打开一个文件并返回文件句柄,`获取文件信息`函数则使用这个句柄来获取文件的相关信息。参数1代表我们想要获取的是文件路径。最后,`关闭文件`函数用于释放文件句柄资源。 易语言...
可以通过 /proc/sys/fs/file-max 文件来查看和设置系统级别的文件句柄数量限制。例如,使用 `cat /proc/sys/fs/file-max` 命令可以查看当前的文件句柄数量限制,而使用 `echo 100000 > /proc/sys/fs/file-max` 命令...
标题中的“这个东西可以查看文件句柄”表明我们要讨论的是一个工具或软件,它具有查看系统中打开文件的句柄信息的功能。句柄在计算机科学中是一个标识符,操作系统通过句柄来管理和操作文件或其他系统资源。这个工具...
从打开的文件句柄获得文件的路径.根据HANDLE获得文件路径
"Handle"是一款实用工具,专门用于查看Windows系统中的文件句柄信息,对开发人员来说尤其有用,能够帮助他们诊断和解决与句柄管理相关的问题。 Handle工具通常由 Sysinternals(现在是Microsoft的一部分)提供,它...
在vue开发时需要在页面跳转的时候传递文件句柄,又不想用vuex来传递,因为vuex使用有些大材小用,说以用mitt,也就是vue2的eventbus。vue3没有eventbus,所以使用mitt,来传递文件句柄,在另一个页面就可以拿到文件...
修改文件句柄数在Linux下,我们使用ulimit -n 命令可以看到单个进程能够打开的最大文件句柄数量(socket连接也算在里面)。系统默认值1024。 对于一般的应用来说(象Apache、系统进程)1024完全足够使用。但是如何象...
《文件句柄冲突检测器——Unlock Wizard深度解析》 在日常的计算机操作中,我们时常会遇到这样的问题:想要删除或移动一个文件时,系统提示该文件正在被其他程序使用,无法进行操作。这时,Unlock Wizard这样的工具...
易语言源码易语言文件号和文件句柄互转模块源码.rar 易语言源码易语言文件号和文件句柄互转模块源码.rar 易语言源码易语言文件号和文件句柄互转模块源码.rar 易语言源码易语言文件号和文件句柄互转模块源码.rar ...
《深入解析ZwQuerySystemInformation查找进程文件句柄》 在Windows操作系统中,开发者可以通过系统调用`ZwQuerySystemInformation`来获取系统的各种信息,其中包括查找进程中的文件句柄。这一功能对于系统监控、...
在IT行业中,尤其是在系统编程和低级操作中,文件号(File Number)和文件句柄(File Handle)是两个重要的概念。它们都是操作系统用来标识和管理文件的方式,但使用方式和场景有所不同。本文将深入探讨这两个概念,...
"查看哪个进程打开了哪些文件句柄handle"是一个常见的系统管理和故障排查需求,尤其对于开发者和系统管理员来说,理解并掌握这一技能至关重要。 首先,我们需要了解什么是句柄。在Windows API中,句柄是一个非零...
1. **资源监控**:实时显示系统中所有进程的句柄数量,帮助用户观察哪些进程占用了大量资源,是否存在资源泄露的问题。 2. **句柄详情**:用户可以查看到每个句柄的具体信息,如类型、状态、引用计数等,这对于定位...
标题中的“spy 微软工具 查看句柄”指的是微软提供的一款名为Spy++的调试工具,它是Visual Studio开发环境的一部分。Spy++是一个强大的系统监视工具,尤其适用于Windows应用程序的开发者,它可以帮助用户查看窗口...
例如,在C#中,可以使用`System.Diagnostics.Process`类的`Handles`属性获取进程的句柄数量。在Python中,可以利用`psutil`库获取进程的句柄信息。 句柄的查看不仅可以帮助定位资源泄露问题,还可以用于优化代码,...
这个"列出打开了某个文件句柄的进程,找出谁在使用某个文件.zip"的主题,就是关于如何在编程环境中(可能是C++,因为文件列表中有Cpp文件)查找并显示那些持有一个特定文件句柄的进程。 在Windows API中,有几个关键...
先运行 fdtrans 建立监听, 然后 运行fdtranc fdtranc 连接fdtrans并得到 文件 fdtrans.cpp的句柄。然后 fdtranc 用这个句柄读文件的前 30个字节并显示出来。 参考文章见 apue2 Section 17.4. Passing File ...
使用 ulimit -n 命令可以查看单个进程能够打开的最大文件句柄数量。系统默认值 1024,对于一般的应用来说已经足够使用,但是对于需要处理大量请求的应用,可能会出现“too many files open”的错误提示。 要知道...
在Windows操作系统中,句柄(Handle)是一种标识符,用于唯一地引用系统资源,如文件、设备、进程、线程等。"枚举当前系统的所有已打开文件的句柄及路径"这一主题涉及到Windows API调用和系统底层的交互,主要用于...