当前位置: 首页 > 编程日记 > 正文

linux系统级别的能够打开的文件句柄的数file-max命令

简单的说, max-file表示系统级别的能够打开的文件句柄的数量, 而ulimit -n控制进程级别能够打开的文件句柄的数量.

man 5 proc, 找到file-max的解释:
file-max中指定了系统范围内所有进程可打开的文件句柄的数量限制(系统级别, kernel-level). (The value in file-max denotes the maximum number of file handles that the Linux kernel will allocate).当收到”Too many open files in system”这样的错误消息时, 就应该曾加这个值了.

# cat /proc/sys/fs/file-max
185230
# echo 100000 > /proc/sys/fs/file-max

或者
# echo ""fs.file-max=65535" >> /etc/sysctl.conf
# sysctl -p

The kernel constant NR_OPEN imposes an upper limit on the value that may be placed in file-max. (这句啥子意思? 没太明白)

对于2.2的内核, 还需要考虑inode-max, 一般inode-max设置为file-max的4倍. 对于2.4及以后的内核, 没有inode-max这个文件了.

file-nr 可以查看系统中当前打开的文件句柄的数量. 他里面包括3个数字: 第一个表示已经分配了的文件描述符数量, 第二个表示空闲的文件句柄数量, 第三个表示能够打开文件句柄的最大值(跟file-max一致). 内核会动态的分配文件句柄, 但是不会再次释放他们(这个可能不适应最新的内核了, 在我的file-nr中看到第二列一直为0, 第一列有增有减)

man bash, 找到说明ulimit的那一节:
提供对shell及其启动的进程的可用资源(包括文件句柄, 进程数量, core文件大小等)的控制. 这是进程级别的, 也就是说系统中某个session及其启动的每个进程能打开多少个文件描述符, 能fork出多少个子进程等…

当达到上限时, 会报错”Too many open files”或者遇上Socket/File: Can’t open so many files等

另外需要注意的是, 每种资源都有相关的软硬限制, 软限制是内核强加给相应资源的限制值,硬限制是软限制的最大值. 非授权调用进程只可以将其软限制指定为0~硬限制范围中的某个值,同时能不可逆转地降低其硬限制.授权进程可以任意改变其软硬限 制.RLIM_INFINITY的值表示不对资源限制.

分别使用-H和-S选项来指定需要对资源是做硬限制/软限制的设置. 如果都不指定, 硬限制和软限制同时设置.

打印资源的限制值, 如果不明确指定-H, 打印的是-S

要改apache的ulimit, 可以在 /usr/sbin/apachectl 这个脚本中修改 ULIMIT_MAX_FILES 这个值

可打开文件句柄数设置的太大, 有那些危害:
If the file descriptors are tcp sockets, etc, then you risk using up a large amount of memory for the socket buffers and other kernel objects; this memory is not going to be swappable.

另外要记得的是socket connection也是文件.

相关文章:

这封以数字构写的蓝图,正在实现笔尖所触即世界

作者 | 贾凯强出品 | AI科技大本营(ID:rgznai100)一撇一捺,一勾一抹,笔走龙蛇,可见真意。笔者小时候字迹潦草,便总是抱怨为什么一定要写字好看?而如今计算机统治了世界,键盘和鼠标早…

Svn 笔记—— Hooks

pre-commit 钩子功能:[rootDa hooks]# cat /application/svndata/sadoc/hooks/pre-commit#!/bin/bash#Check message lenth ---更新版本时强制输入信息小于5个字符会退出REPOS"$1"TXN"$2"logmsgsvnlook log -t $TXN $REPOS |grep &q…

22.CSS边框与背景【上】

第十七章 CSS边框与背景【上】 一、声明边框 属性 值 说明 CSS版本 1、border-width 长度值 设置边框的宽度(可选) 1 2、border-style 样式名称 设置边框的样式(必选&…

一致性 hash 算法( consistent hashing )

原文地址:http://blog.csdn.net/sparkliang/article/details/5279393consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在 cache 系统中应用越来越广泛; 1 基本场景 比如你有 N 个 cache 服务…

【json的使用】

1、json格式字符串:Java代码/** 操作成功 200 */ public static final String RESULT_SUCCESS "{\"code\":\"200\",\"message\":\"成功!\"}";复制代码2、解析json字符串:Java代码JSONObject object…

通过 for 循环,比较 Python 与 Ruby 编程思想的差别

作者 | Doug Turnbull译者 | 豌豆花下猫Python猫来源 | Python猫Ruby 与 Python 之间的差异在很大程度上可通过for循环看出本质。Python 拥有for语句。对象告诉for如何进行协作,而for的循环体会处理对象返回的内容。Ruby 则相反。在 Ruby 中,for本身&…

Blippar放大招,要开源其AR和计算机视觉技术

AR公司Blippar将向第三方开发者提供AR和计算机视觉技术API,来推动他们的AR商业应用解决方案的发展。 致力于用AR技术帮助一些大品牌进行品牌故事和消费者营销的AR公司Blippar,最近对外宣布,要将他们的AR和计算机视觉技术API,提供…

Linux CPU数量判断命令

其实只要 #include <unistd.h>long num sysconf(_SC_NPROCESSORS_ONLN); 便可以获得当前CPU的数量。。。 判断依据&#xff1a;1.具有相同core id的cpu是同一个core的超线程。2.具有相同physical id的cpu是同一颗cpu封装的线程或者cores。 英文版&#xff1a;1.Physical…

5月.CN域名注册量持续上涨至1199万个 净增14万

IDC评述网&#xff08;idcps.com&#xff09;06月11日报道&#xff1a;根据中国互联网络信息中心&#xff08;CNNIC&#xff09;最新公布的数据显示&#xff0c;在5月份&#xff0c;.CN域名总量持续增至11,990,264个&#xff0c;环比上月&#xff0c;净增143,346个&#xff0c;…

人工智能/云原生/数据科学/计算等方向内容整理志愿者招募了!

持续招募内容整理志愿者&#xff01;云原生、数据科学、AI、低代码、计算等方向&#xff0c;有意愿的小伙伴&#xff0c;欢迎识别二维码提前报名哦。我们将持续为爱学习、有时间的小伙伴&#xff0c;提供多重福利&#xff01;要求&#xff1a;1. 你需要具备一定学术背景&#x…

三个轻量级WebServer--lighttpd,thttpd,shttpd介绍

国内绝大部分的web server不是IIS就是Apache&#xff0c;而论市场占有率&#xff0c;我认为Apache是大赢家了&#xff0c;至少是占据了半壁江山。但除了IIS/Apache外&#xff0c;其实我们有很多选择&#xff0c;对于高负载/大并发的网站而言&#xff0c;高性能、轻量级的web se…

实验四 主存空间的分配和回收

实验四 主存空间的分配和回收 一、目的和要求 1.1. 实验目的 用高级语言完成一个主存空间的分配和回收程序&#xff0c;以加深对动态分区分配方式及其算法的理解。 1.2. 实验要求 采用连续分配方式之动态分区分配存储管理&#xff0c;使用首次适应算法、循环首次适应算法、最佳…

技术“摸鱼” 大神,国外小哥 5 年白拿 45 万工资!

整理 | 孙胜出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;自从2017年谷歌旗下的AlphaGo以3比0战胜柯洁后&#xff0c;“人工智能即将取代人类工作”一度成为人们热议的话题。然而最近一位国外小哥用他亲身经历告诉我们&#xff0c;虽然程序终将代替人类执行重复劳…

Python杂篇

一&#xff1a;文件保存 def save_to_file(file_name, contents):fh open(file_name, w)fh.write(contents)fh.close()save_to_file(mobiles.txt, your contents str)结果&#xff1a; 将字符串修改则覆盖原来的字符串 将字符串用变量替代 将 fh open(file_name, w)写的权限去…

整理了 70 个 Python 面向对象编程案例,怎能不收藏?

作者 | 周萝卜来源 | 萝卜大杂烩Python 作为一门面向对象编程语言&#xff0c;常用的面向对象知识怎么能不清楚呢&#xff0c;今天就来分享一波文章很长&#xff0c;高低要忍一下&#xff0c;如果忍不了&#xff0c;那就收藏吧&#xff0c;总会用到的在 Python 中创建一个类及其…

ionic中的ion-option-button

2019独角兽企业重金招聘Python工程师标准>>> 代码 <ion-option-button class"button-assertive" ng-click"df(itemData)">批准 </ion-option-button> 效果图 转载于:https://my.oschina.net/u/1416844/blog/465730

memset函数详细说明

1。void *memset(void *s,int c,size_t n)总的作用&#xff1a;将已开辟内存空间 s 的首 n 个字节的值设为值 c。2。例子#include <stdio.h>#include <string.h>void main(){char s[]"hello";memset(s,*,2);printf("%s",s);} 输出&#xff1a…

CES Asia专题|微鹅展示无线充电,智能手机的无线充电时代何时来临?

无线充电离商业化应用还有多远&#xff1f; 此前一直有传闻苹果在新一代iPhone上会推出无线充电&#xff0c;在CES Asia上&#xff0c;我们也看到了无线充电技术方案解决商微鹅带来的最新产品。 据了解&#xff0c;目前我们所说的无线充电其实是指近场无线充电&#xff0c;让充…

Linux下Socket编程

Linux下Socket编程 网络的Socket数据传输是一种特殊的I/O&#xff0c;Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket()&#xff0c;该函数返回一个整型的Socket描述符&#xff0c;随后的连接建立、数据传输等操作都是通过该Socket实现的。 什么…

看大众点评如何通过实时监控系统CAT打造7*24服务

为什么80%的码农都做不了架构师&#xff1f;>>> 看大众点评如何通过实时监控系统CAT打造7*24服务 2015-06-08 尤勇 高可用架构 https://github.com/dianping/cat 本文根据尤勇在【QCon高可用架构群】中的分享内容整理而成。 尤勇是大众点评网资深工程师&#x…

Python 快速实现分列转到行!

作者 | 黄伟呢来源 | 数据分析与统计学之美之前看到一篇文章&#xff0c;用Excel快速实现分列转到行的操做。数据源大致是这样的&#xff1a;基于此&#xff0c;我动起了一个念头&#xff1a;看看如何用Python快速实现这个操作。数据源已经构造好&#xff0c;咱们开干&#xff…

javabean属性的类型选择包装类还是基本数据类型

学生 参加考试&#xff0c;需要在表中存放分数score字段 &#xff0c;score是采用double 还是Double &#xff1f; 假如有个同学张三 没有参加考试&#xff0c;double 默认值 0 &#xff0c; Double 默认值 null 使用原始类型&#xff0c;无法区分0值没有数据&#xff0c;还是值…

C语言实现的Web服务器

另一篇&#xff1a;标准C实现WEB服务器http://blog.sina.com.cn/s/blog_4b73e7600100b02c.html本文原文地址&#xff1a; http://blog.sina.com.cn/s/blog_4b73e760010007id.html自己研究了好几天终于写出来一个&#xff0c;哈哈&#xff0c;当然也从网上得到了很多的帮助拉。谢…

使用深度学习检测混凝土结构中的表面裂缝

作者 | 小白来源 | 小白学视觉混凝土建筑裂缝介绍表面裂缝检测是监测混凝土结构健康的一项重要任务。如果裂纹发展并继续扩展&#xff0c;它们会减少有效承载表面积&#xff0c;并且随着时间的推移会导致结构失效。裂纹检测的人工过程费时费力&#xff0c;且受检验人员主观判断…

Python学习笔记--序列

Sequence序列 1.序列操作 seq[ind1:ind2] seq[ind] seq1 seq2 seq1 * seq2 seq * n obj in seq obj not in seq 2.切片操作 #反转操作 seq[::-1] #隔一个取一个 seq[::2] #取全部 seq[:None] ##序列类型可用的内建函数 enumerate(seq) #接受一个迭代对象&#xff0c;返回由索引…

「深度」线下大数据正成为构建精准“用户画像”的最大助力

不管是针对消费者的宣传还是营销&#xff0c;或者是针对公司的管理运营&#xff0c;大数据在其中的作用从本质来讲就是在构造“用户画像”。 近年来&#xff0c;在智能化趋势的推动下&#xff0c;社会经济的众多领域都发生了翻天覆地的变化&#xff0c;其中尤其以金融、零售等…

Android上成功实现了蓝牙的一些Profile

前段时间做蓝牙方面的开发&#xff0c;Google的Android只实现了Handset/Handfree和A2DP/AVRCP等Profile&#xff0c;而其 它常用的Profile如HID/DUN/SPP/OPP/FTP/PAN等却没有实现&#xff0c;并且Google方面关于何时实现也没有一个时间表。 前段时间我实现了HID/DUN/SPP三个Pro…

拥有「人类智能」的全球首款有「思想」的机器人,活细胞培养的神经元

出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 脑机接口&#xff0c;其主体是人的大脑&#xff0c;利用人大脑中产生的信号转换为命令而执行任务。 首款有思想的机器人&#xff1f;是的&#xff0c;你真的没有看错&#xff01; 反过来说呢&#xff0c;比如主体是机…

使用VS2010调试技巧让C指针无处遁形

Linux 下调试远没有windows下的VS方便&#xff0c;不管是VC6还是VS2003&#xff0c;2005&#xff0c;2008&#xff0c;2010&#xff0c;2012. VS2012自动格式化代码 CtrlKD VS下调试一定要注意尽量不要用F11&#xff0c;要用F10&#xff01;不然需要引入库文件&#xff0c;提示…