返回顶部
首页 > 资讯 > 精选 >Ulimit的故障怎么解决
  • 913
分享到

Ulimit的故障怎么解决

2023-06-17 03:06:21 913人浏览 独家记忆
摘要

本篇内容主要讲解“Ulimit的故障怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Ulimit的故障怎么解决”吧!最近遇到一个非常有趣的问题。其中有一组HAProxy,频繁出现问题。登录

本篇内容主要讲解“Ulimit的故障怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Ulimit的故障怎么解决”吧!

最近遇到一个非常有趣的问题。其中有一组HAProxy,频繁出现问题。登录上服务器,cpu、内存、网络io一顿猛查。最终发现,机器上处于TIME_WaiT状态的连接,多达6万多个。

Ulimit的故障怎么解决

TIME_WAIT状态,一般都会出现在HAProxy、Nginx这种代理机器上,主要是由于频繁的主动关闭所造成的。通过修改reuse和回收参数,可以比较快速的解决问题。

网络状态的统计数量,可以使用下面的命令进行统计。

netstat -ant|awk '/^tcp/ {++S[$NF]} END {for(a in S) print (a,S[a])}' ESTABLISHED 70 FIN_WAIT2 30 CLOSING 33 TIME_WAIT 65520

Ulimit的故障怎么解决

这本来没什么神奇的,但65535这个数字,实在是太过于敏感。应该是触发了某种上限。

使我们更加感到疑惑的是:为什么TIME_WAIT状态的连接,仅仅达到了65535,服务就不可用了?

到处号称的单机百万连接,是在吹牛皮么?怎么这么经不起折腾?

65535,表示等于2的16次方减一,是一个神奇的数字。先把这小数字扔在一边,我们来看一下linux到底能支持多少个连接。

1. Linux能够支持多少连接?

答案是无数个。可是端口只有65535个啊。

为什么端口只有65535个?

这是一个历史原因,因为在TCP、UDP协议的开头,会分别有16位来存储源端口号和目标端口号。很遗憾的是,这个值是short类型的,大小也是2^16-1。

因为历史原因造成的不可改变的标准,就是那么根深蒂固。

那Linux到底能支持多少个连接呢?答案是无数个。

拿nginx来说,我们把它监听在80端口上。这时候A机器去连接Nginx,可以发起多达6w多条长连接。如果B机器去连接Nginx,同样也可以发起6w多条连接。这是由于确定一条连接,是由src和dst来共同决定的。

认为Linux只能接受65535条连接的想法,只能说是犯了非常浅显的想当然主义。

65535个端口,作为压测机可能对你来说太小了一些。但对于服务器来说,已经绰绰有余了。

2. 如何支持百万连接?

从上面可以看到,连接数,是没有限制的。但Linux还有一层防护,那就是文件句柄数。通过lsof命令查看到的那些东西,就是所谓的文件句柄。

先来看一下几个命令的展示。

ulmit,展示了每个进程所能占用的文件句柄数量。

ulimit -n 65535

file-max,展示了操作系统能够占用的文件句柄数量总和,针对的是所有的进程。

cat /proc/sys/fs/file-max 766722

file-nr,展示了当前已经使用的句柄数量和总的句柄数量。可以拿来做监控

cat /proc/sys/fs/file-nr 1824  0 766722

要支持百万连接,既要放开操作系统级别的句柄,也要放开进程级别的句柄。也就是说,ulimit和file-max的显示,都要大于百万才成。

3. 如何设置?

设置进程的句柄个数,常用的方式就有ulimit,但是非常非常不推荐。原因无他,只有在同一个shell中启动的进程,ulimit的设置才会生效。你打开另外一个shell,或者重启机器,ulimit的改动都会丢失。就是下面这种方式:

ulimit -n 1000000

正确的方式,是修改/etc/security/limits.conf文件。比如下面的内容。

root soft nofile 1000000 root hard nofile 1000000 * soft nofile 1000000 * hard nofile 1000000

可以看到,我们可以针对于特定的用户,修改其句柄数量。这在安装es等应用时,经常碰到。

es  -  nofile  65535

但即使是这种方式,也要求你需要打开一个新的shell进行操作。在当前修改的shell里或者修改之前的shell里,同样不生效。xjjdog就曾遇到过多起这样明明放开了限制,但还是发生问题的案例。

要看到这些改变是否已经对进程生效,可以查看进程的内存映射文件。比如cat /proc/180323/limits,其中会有详细的展示。

这个数值,也并不是想要设多大就多大的。它的大小上限,是由nr_open决定的。想要更大,就要修改/ect/sysct.conf  中fs.nr_open的值。

cat /proc/sys/fs/nr_open 1048576

那file-max又该如何修改呢?建议修改/etc/sysctl.conf文件,加入下面内容。足足有6百多万!

fs.file-max = 6553560

当文件数量超出的时候,就会报kernel: VFS: file-max limit 65535 reached的错误。

总结一下。

Ulimit的故障怎么解决

Linux即使放开一个端口,能够接受的连接也是海量的。这些连接的上限,受到单进程文件句柄数量和操作系统文件句柄数量的限制,也就是ulimit和file-max。

为了能够将参数修改持久化,我们倾向于将改动写入到文件里。进程的文件句柄限制,可以放在/etc/security/limits.conf中,它的上限受到fs.nr_open的制约;操作系统的文件句柄限制,可以放到/etc/sysctl.conf文件中。最后,别忘了在/proc/$id/limits文件中,确认修改是否对进程生效了。

到此,相信大家对“Ulimit的故障怎么解决”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Ulimit的故障怎么解决

本文链接: https://lsjlt.com/news/286959.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Ulimit的故障怎么解决
    本篇内容主要讲解“Ulimit的故障怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Ulimit的故障怎么解决”吧!最近遇到一个非常有趣的问题。其中有一组HAProxy,频繁出现问题。登录...
    99+
    2023-06-17
  • 怎么解决数据库报错-bash: ulimit问题
    这篇文章主要讲解了“怎么解决数据库报错-bash: ulimit问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决数据库报错-bash: ulimi...
    99+
    2024-04-02
  • win7打印机常见的故障怎么解决
    本篇内容主要讲解“win7打印机常见的故障怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“win7打印机常见的故障怎么解决”吧!一.打印有横纹由哪些原因引起?如何解决?答: 1. 安装墨盒...
    99+
    2023-06-28
  • 腾讯云服务器故障怎么解决的
    腾讯云服务器故障是一种常见的云计算故障,常见的原因包括硬件故障、软件故障和配置问题等。以下是一些常见的故障解决方法: 硬件故障 硬件故障是最常见的故障之一。如果服务器无法正常工作,则可能是由于服务器硬件损坏或软件故障造成的。例如,服务...
    99+
    2023-10-28
    腾讯 故障 服务器
  • 怎么解决windows下oracle监听故障
    这篇文章主要讲解了“怎么解决windows下oracle监听故障”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决windows下oracle监听故障”...
    99+
    2024-04-02
  • 怎么解决数据库ORA-10873故障
    这篇文章主要介绍“怎么解决数据库ORA-10873故障”,在日常操作中,相信很多人在怎么解决数据库ORA-10873故障问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么解决...
    99+
    2024-04-02
  • redis集群节点故障怎么解决
    当Redis集群节点出现故障时,可以采取以下措施来解决问题: 检查集群节点状态:使用命令redis-cli cluster no...
    99+
    2024-05-21
    redis
  • 电脑显卡常见的故障及怎么解决
    这篇文章主要讲解了“电脑显卡常见的故障及怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“电脑显卡常见的故障及怎么解决”吧!常见故障一:开机无显示此类故障一般是因为显卡与主板接触不良或主...
    99+
    2023-06-28
  • Mysql update sql引起的生产故障怎么解决
    这篇文章主要介绍“Mysql update sql引起的生产故障怎么解决”,在日常操作中,相信很多人在Mysql update sql引起的生产故障怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简...
    99+
    2023-06-29
  • 亚马逊云服务器故障怎么解决的
    亚马逊云服务的故障可以分为内部故障和外部故障两种。其中,内部故障主要指由于操作系统或应用程序的故障引起的故障,这种故障会导致数据丢失或系统崩溃。外部故障则指由于自然灾害、病毒、黑客攻击等外部因素引起的故障,这种故障会导致数据泄露、系统宕机等...
    99+
    2023-10-27
    亚马逊 故障 服务器
  • Fedora19使用ceph出现故障怎么解决
    要解决Fedora 19上Ceph出现的故障,可以遵循以下步骤:1. 检查Ceph节点的状态:使用命令`ceph status`来检...
    99+
    2023-09-22
    Fedora ceph
  • xp显示器常见故障怎么解决
    今天小编给大家分享一下xp显示器常见故障怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。故障一:开机时显示器画面抖动得...
    99+
    2023-06-28
  • 亚马逊服务器故障怎么解决
    1. 了解亚马逊服务器故障的原因 亚马逊服务器故障可能是由多种原因引起的,例如硬件故障、网络故障、软件故障等。在解决问题之前,需要先了解故障的具体原因。 2. 检查亚马逊服务器状态 在发现亚马逊服务器故障后,需要先检查服务器的状态。可以通...
    99+
    2023-10-27
    亚马逊 故障 服务器
  • 腾讯云服务器故障怎么解决
    腾讯云服务器出现故障是一个很常见的问题,以下是一些可能的解决方法: 重启服务器:重启服务器会清除所有数据和应用程序,使数据和应用程序能够正常运行。 更换硬件:更换硬件设备可能会解决某些问题,例如数据损坏或者硬盘故障。请检查硬件设备,确保...
    99+
    2023-10-26
    腾讯 故障 服务器
  • hadoop节点管理器故障怎么解决
    当Hadoop节点管理器出现故障时,可以尝试以下方法来解决问题: 检查节点管理器日志:首先查看节点管理器的日志文件,了解具体的错...
    99+
    2024-04-02
  • 阿里云服务器香港故障怎么解决的
    阿里云服务器香港故障的原因可能包括以下几个方面: 配置错误:如果您之前使用的是阿里云服务提供商提供的基础架构,则阿里云服务器香港故障可能是由于您的操作系统或应用程序配置不正确导致的。您需要检查您的系统设置、应用程序配置或数据库配置,以解...
    99+
    2023-10-26
    阿里 香港 故障
  • 香港阿里云服务器故障怎么解决的
    如果您的香港阿里云服务器发生故障,以下是一些可能有用的解决方案: 在阿里云的控制台中获取最新的服务器时间或状态信息:打开您的阿里云的客户端,查看系统或应用程序提供的当前时间或状态信息,以便快速了解故障情况。 联系阿里云客户服务团队:如果...
    99+
    2023-10-26
    阿里 香港 故障
  • 物理隔离卡出现故障怎么解决
    解决物理隔离卡故障的方法硬盘类故障可能是未将系统硬盘的跳线方式设置为Master方式,确认硬盘的跳线方式为Master方式即可。网络类故障可能是隔离卡上的跳线方式被设置为“单布线网络”,在此方式下,隔离卡通过单网线连接到远端的隔离集线器时,...
    99+
    2024-04-02
  • 电脑显示灾难性故障怎么解决
    遇到电脑显示灾难性故障时,可以尝试以下方法进行解决:1. 重新启动电脑:有时候电脑出现故障只是暂时的问题,重新启动电脑可能会解决。2...
    99+
    2023-10-10
    电脑
  • win7系统dns服务器故障怎么解决
    今天小编给大家分享一下win7系统dns服务器故障怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。解决方法:一、打开网...
    99+
    2023-06-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作