很多同学在使用erlang的过程中, 碰到了很奇怪的问题, 后来查明都是文件句柄不够用了, 因为系统默认的是每个进程1024. 所以我们有必要在程序运行的时候, 了解这些信息, 以便诊断和预警.
下面的这个程序就演示了这个如何查看节点的可用句柄数目和已用句柄数的功能.
首先确保你已经安装了lsof, 我的系统是ubuntu可以这样安装.
root@ubuntu:~# apt-get -y install lsof
root@ubuntu:~# cat fd.erl
-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:~#
收工!
分享到:
相关推荐
"ORA-12516 TNS 监听程序无法找到匹配协议栈的可用句柄" oracle 数据库是当前最流行的关系型数据库管理系统之一,然而,在使用 oracle 数据库时,经常会遇到各种错误信息,ORA-12516 错误信息便是其中之一。ORA-...
Spy++提供了一个直观的界面,让用户能够轻松地查找并查看任何窗口的句柄,这对于理解窗口层次结构和跟踪特定窗口的操作非常有帮助。 “消息监听”是Spy++的另一大功能,它允许开发者监控应用程序中的消息流。通过这...
句柄查看工具如“句柄查看精灵 3.0”就扮演着一个重要的角色,它帮助开发者和系统管理员直观地了解程序对系统资源的使用情况,找出可能存在的问题和优化空间。 首先,我们要理解句柄的本质。句柄不是资源本身,而是...
本篇文章将深入探讨“查看句柄”这一主题,涵盖其原理、用途、以及如何在不同的操作系统和编程环境中查看句柄。 首先,我们需要理解为什么需要查看句柄。在操作系统中,句柄提供了对系统资源的间接访问,使得系统...
本文将深入探讨“演示ClientSocket反复连接进程句柄数不变”这个主题,以及如何解决由此引发的问题,如句柄数增加、系统资源耗尽和死机。 首先,让我们理解什么是ClientSocket。ClientSocket是Delphi中的一个组件,...
【标题】"句柄查看精灵(ViewWizard):深入探索窗口与控件的句柄和属性" 在Windows操作系统中,程序的界面是由各种窗口和控件构成的,它们通过句柄来唯一标识。句柄查看精灵(ViewWizard)是一款强大的工具,它能够...
总的来说,"myspy查看句柄工具"是Windows开发和调试不可或缺的利器,它的强大在于能直观地揭示系统内部的句柄信息,帮助专业人士高效地进行系统级别的操作。通过熟练掌握和运用myspy,无论是进行日常开发还是解决...
"不一般的句柄查看器很好用"这个标题表明我们讨论的是一款非同寻常的句柄查看器,可能具有独特的功能或用户友好的界面,使得它在同类软件中脱颖而出。 句柄查看器的主要功能包括: 1. **句柄监控**:能够实时监控...
用来查看句柄的和用来结束句柄程序,和取句柄标题的
标题中的“轻松查看窗口句柄工具”是一款专为IT专业人士设计的应用程序,旨在帮助用户轻松获取和分析与操作系统窗口相关的各种信息。这款工具的核心功能是查找、显示和管理窗口句柄,这对于软件开发者、系统管理员...
在IT领域,句柄是一个非常重要的概念,尤其是在Windows操作系统中。...总的来说,句柄查看器是Windows系统开发和维护的重要辅助工具,它提供了对底层系统操作的洞察力,帮助用户更好地理解和控制他们的应用程序。
在IT领域,句柄搜索和显示句柄是操作系统级别的编程技术,主要应用于系统资源的管理和调试。本篇文章将深入探讨2012年备受推崇的“金鹰句柄搜索”工具,它集成了闪动句柄功能,为开发者和系统管理员提供了一种强大的...
Linux Shell 网络层监控脚本(监控包括:连接数、句柄数及根据监控反馈结果分析)
"窗口句柄查看器"是一款专门用于Windows操作系统的小型实用工具,它可以帮助用户查看和分析系统中的窗口句柄、窗口标题、窗口ID以及窗口之间的父子关系。在IT领域,理解和操作窗口句柄是进行系统级编程、自动化测试...
本文将详细介绍C#中如何查看和利用窗口句柄。 一、窗口句柄的概念与作用 窗口句柄是Windows系统为每个窗口分配的一个唯一ID,它允许程序通过该句柄对窗口进行各种操作,例如改变窗口大小、位置、标题,甚至发送...
《句柄查看精灵v2.3》是一款专用于系统句柄检测和管理的实用工具,主要服务于IT领域的开发者和系统管理员。在Windows操作系统中,句柄是系统内部用来标识和管理资源的一种机制,如文件、窗口、设备等。了解和掌握...
HandleLook工具,正如其名,专门用于查看和分析进程的句柄信息,这对于调试、优化以及安全分析都有着重要的作用。本文将详细探讨HandleLook的功能、工作原理以及如何正确使用它来查看句柄路径。 首先,我们需要理解...
Linux 进程句柄数设置详解 在 Linux 系统中,进程句柄数设置是一个重要的参数,它决定了单个进程能够打开的最大文件句柄数量,包括 socket 连接。系统默认值为 1024,这对于一般的应用来说已经足够使用。但是,对于...
在Windows编程中,句柄(Handle)是一个至关重要的概念,它是操作系统用来唯一标识系统资源如...通过学习和实践,开发者可以更好地掌握如何创建、操作和管理各种类型的句柄,从而编写出更加健壮和可靠的Windows应用。
每个节点代表一个控件,节点的值是句柄,而子节点则表示其包含的控件。 ```csharp public class ControlNode { public IntPtr Handle { get; set; } public List<ControlNode> Children { get; } = new List()...