打开文件数限制功能不断地制造问题
2013-07-30 18:34
225 查看
检查您的打开文件数量的限制,它们不停地以一种奇怪的方式损害我们的潜在客户。应该杜绝此事再次发生,但是要发现这种危害,尤其是对于不同的Linux分布式系统而言,确实很困难。
打开文件对于系统操作而言至关重要。因为它们定义了一个进程所能打开的总的文件句柄数量,要记住,在Unix/Linux上,所有的一切都是以文件的形式存在的,包括所有的的实体文件,尤其是TCP/IP 及Unix套接字也算作文件。
这意味着像Nginx或MySQL等服务能够耗尽所有文件句柄,包括用户TCP/IP 连接及磁盘上的文件句柄。所以,很轻易地就能够消耗完一台中等负荷系统的所有可用文件量。
许多Linux系统默认的打开文件数量为1024个,这意味着在Nginx或MySQL系统中,如果有几百个用户/连接和打开文件的话,就很容易达到文件用量上限。当达到系统上限时,随着用户登录/登出系统,会有很多奇怪的故障随时发生。有些服务会在日志中报告错误,但是绝大多数服务不会给您任何通知。为避免此类故障,您需要重设默认值,设置地址在/etc/security/limits.conf目录下。我们常用的最小值是16535个,但是后来在很多系统上使用了65535个。如您用的是大型系统,还使用了HAPeoxy, 您可将该值设的更高,如256,000或更高的值。所以,为使工作称心如意,将用户(*表示系统上的所有用户)的软件及硬件限制设置在65535。需登出再登入才能使设置生效。
同时,您要明白,由于limits.conf对于根用户而言需要特定的行,所以Debian/Ubuntu系统会遇到一些特殊的问题。许多系统(如CentOS),都使用“*”来表示所有用户,但是以Debian为基础的系统“*”并不包括根用户,看起来没有意义,但是事实就是这样的。
最后,请记住有一个Linux内核系统级的参数,即fs.file-max.可将打开文件数量设置到最大值,该参数也可根据RAM或其它因素(根据分配情况),进行动态设置,但是在繁忙的系统中,该参数的值可能很小。我们通常将其设置为500K或1百万,但前提是确保系统不会在使用过程中达到这一上限。可以通过sysctl及sysctl.conf进行设置。
(Authored by Steve Mushero / ChinaNetCloud CEO & CTO 本博客英文原文请点此查看)
打开文件对于系统操作而言至关重要。因为它们定义了一个进程所能打开的总的文件句柄数量,要记住,在Unix/Linux上,所有的一切都是以文件的形式存在的,包括所有的的实体文件,尤其是TCP/IP 及Unix套接字也算作文件。
这意味着像Nginx或MySQL等服务能够耗尽所有文件句柄,包括用户TCP/IP 连接及磁盘上的文件句柄。所以,很轻易地就能够消耗完一台中等负荷系统的所有可用文件量。
许多Linux系统默认的打开文件数量为1024个,这意味着在Nginx或MySQL系统中,如果有几百个用户/连接和打开文件的话,就很容易达到文件用量上限。当达到系统上限时,随着用户登录/登出系统,会有很多奇怪的故障随时发生。有些服务会在日志中报告错误,但是绝大多数服务不会给您任何通知。为避免此类故障,您需要重设默认值,设置地址在/etc/security/limits.conf目录下。我们常用的最小值是16535个,但是后来在很多系统上使用了65535个。如您用的是大型系统,还使用了HAPeoxy, 您可将该值设的更高,如256,000或更高的值。所以,为使工作称心如意,将用户(*表示系统上的所有用户)的软件及硬件限制设置在65535。需登出再登入才能使设置生效。
同时,您要明白,由于limits.conf对于根用户而言需要特定的行,所以Debian/Ubuntu系统会遇到一些特殊的问题。许多系统(如CentOS),都使用“*”来表示所有用户,但是以Debian为基础的系统“*”并不包括根用户,看起来没有意义,但是事实就是这样的。
最后,请记住有一个Linux内核系统级的参数,即fs.file-max.可将打开文件数量设置到最大值,该参数也可根据RAM或其它因素(根据分配情况),进行动态设置,但是在繁忙的系统中,该参数的值可能很小。我们通常将其设置为500K或1百万,但前提是确保系统不会在使用过程中达到这一上限。可以通过sysctl及sysctl.conf进行设置。
(Authored by Steve Mushero / ChinaNetCloud CEO & CTO 本博客英文原文请点此查看)
相关文章推荐
- 打开文件数限制功能不断地制造问题
- 打开文件数限制功能不断地制造问题
- 解决CB中TOpenDialog, TOpenPictureDialog打开文件数量有限制的问题
- 关于vc++6.0“打开文件“功能问题的解决方法
- HTML5 input file控件使用accept过滤限制的文件类型以及在谷歌下打开很慢的问题
- unity 打开文件对话框功能及非Editor模式下全屏播放打开文件对话框后程序转后台问题的处理
- 高并发socket/tcp网络最大连接数所受的限制问题,ulimit文件打开数,文件描述符
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- 解决error C1083: 无法打开包括文件: “sys/time.h”的问题
- 服务器异常java.io.IOException: Too many open files(系统最大文件打开数限制)
- 上传文件大小限制问题 excel
- 解决VS在编译的时候无法打开...obj文件的问题
- vim / gedit 打开GBK文件乱码问题
- PHP使用fopen()函数打开文件提示权限不够问题
- PHP中打开或包含远程文件时要注意的问题
- PHP和Nginx 文件上传大小限制问题解决方法
- vs2010安装报无法打开数据文件的问题
- 解决ASP.NET Core Mvc文件上传限制问题实例
- jsp页面 java 文件下载设置禁止IE直接打开配置问题
- Virtual Box共享文件夹打开文件的问题