`
mryufeng
  • 浏览: 969206 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

最大文件句柄数对内存的消耗

阅读更多
sys_max_files在erlang beam里面2处地方消耗内存:

1.
static struct driver_data {
    int port_num, ofd, packet_bytes;
    ErtsSysReportExit *report_exit;
    int pid;
    int alive;
    int status;
} *driver_data; /* indexed by fd */

7 WORDS

driver_data = (struct driver_data *)erts_alloc(ERTS_ALC_T_DRV_TAB, max_files * sizeof(struct driver_data));
  
2.
  
static struct fd_data {
    char  pbuf[4];   /* hold partial packet bytes */
    int   psz;       /* size of pbuf */
    char  *buf;
    char  *cpos;
    int   sz;
    int   remain;  /* for input on fd */
} *fd_data; /* indexed by fd */

5 WORDS + 4

fd_data = (struct fd_data *)
erts_alloc(ERTS_ALC_T_FD_TAB, max_files * sizeof(struct fd_data));

1个file消耗的内存为 13WORDS 左右, 32位机器大概是64个字节,假如你不小心把 ulimit -n 10000000 也就是说100w个句柄, 那光这个就消耗64M 内存.所以没有必须的时候, 最大文件句柄数还是够用就行。



分享到:
评论

相关推荐

    lmdbjava:Java的闪电存储数据库(LMDB):低延迟,事务性,排序,嵌入式,键值存储

    即时崩溃恢复(无日志,日记或其他复杂性) 最小的文件句柄消耗(仅一个数据文件;而不是像某些存储一样的100,000个文件) 同线程操作(在您的应用程序线程中调用LMDB;不需要压缩程序线程) 摆脱应用程序端数据缓存...

    糖果的软件

    要解决上述问题,需要确定拥有文件打开句柄的进程,然后关闭此进程。 在以前的 Windows 中,我们可以使用资源工具包的 Oh.exe 。但在 XP 中,安装 好的 Support Tools 却不带 Oh.exe 。不过, XP 提供了一个新的...

    易语言程序免安装版下载

    符号重命名程序(resym.exe)增加对.obj文件的支持,并更新了文档(sdk\static_docs)。 3. 编译生成安装软件时已支持打包静态编译后的程序,但需事先静态编译出该程序。 4. 升级加密狗驱动程序,增加了对 Windows 7,...

    HGE_系列教材(1-9)

    System_Launch 运行一个URL 或者外部的可执行文件或数据文件 System_Snapshot 截屏并保存到一个文件 3. 资源函数(Resource functions): Resource_Load 从硬盘上读取资源到内存中 Resource_Free 从内存中删除读取...

    VC程序在Win32环境下动态链接库(DLL)编程原理

    在构造软件系统时,如果将所有模块的源代码都静态编译到整个应用程序EXE文件中,会产生一些问题:一个缺点是增加了应用程序的大小,它会占用更多的磁盘空间,程序运行时也会消耗较大的内存空间,造成系统资源的浪费...

    CLR.via.C#.(中文第3版)(自制详细书签)Part1

    第9章 参 数 9.1 可选参数和命名参数 9.1.1 规则和原则 9.1.2 DefaultParameterValueAttribute和OptionalAttribute 9.2 隐式类型的局部变量 9.3 以传引用的方式向方法传递参数 9.4 向方法传递可变数量的参数 ...

    CLR.via.C#.(中文第3版)(自制详细书签)

    27.8.6 内存消耗 27.8.7 有的I/O操作必须同步完成 27.8.8 FileStream特有的问题 27.9 I/O请求优先级 27.10 将IAsyncResult APM转换为Task 27.11 基于事件的异步模式 27.11.1 将EAP转换为Task 27.11.2 APM和...

    CLR.via.C#.(中文第3版)(自制详细书签)Part3

    第9章 参 数 9.1 可选参数和命名参数 9.1.1 规则和原则 9.1.2 DefaultParameterValueAttribute和OptionalAttribute 9.2 隐式类型的局部变量 9.3 以传引用的方式向方法传递参数 9.4 向方法传递可变数量的参数 ...

    CLR.via.C#.(中文第3版)(自制详细书签)Part2

    第9章 参 数 9.1 可选参数和命名参数 9.1.1 规则和原则 9.1.2 DefaultParameterValueAttribute和OptionalAttribute 9.2 隐式类型的局部变量 9.3 以传引用的方式向方法传递参数 9.4 向方法传递可变数量的参数 ...

    一个进程池的服务器程序

    由于listenfd是在fork之前就有的,所以所有子进程都可以访问到,不需用到“进程间文件描述符传递”问题; 4,子进程每accept到一个请求都告诉父进程,父进程把请求数加1;子进程没完成一个请求,父进程把请求数减1;...

    TaskManager

    但是对整个代码的设计比较烂,打算在学完设计模式后改写其中的框架,达到易复用,易维护,易扩展! 开发日志: 版本: 46 作者: YU_YU 日期: 19:04:44, 2009年2月8日 信息: 1.增加系统关机功能 ---- 已修改 : /...

Global site tag (gtag.js) - Google Analytics