zabbix经常报警elasticsearch节点TCP连接数过高问题

【Zabbix】Zabbix常见告警问题记录与解决(持续更新) Zabbix告警问题记录Mysql 相关`告警:MySQL: Replication lag is too high (over 30m for 5m)``告警:MySQL: Buffer pool utilization is too low (less 50% for 5m)`Zabbix Server相关`告警:More than 100 items having missing data for more than 10 minutes `解决方案解决方案Redis相关`告警:Redis: Memo 阅读详情

 

单服务器最大tcp连接数及调优汇总

单机最大tcp连接数

网络编程

在tcp应用中,server事先在某个固定端口监听,client主动发起连接,经过三路握手后建立tcp连接。那么对单机,其最大并发tcp连接数是多少?

如何标识一个TCP连接

在确定最大连接数之前,先来看看系统如何标识一个tcp连接。系统用一个4四元组来唯一标识一个TCP连接:{local ip, local port,remote ip,remote port}。

client最大tcp连接数

client每次发起tcp连接请求时,除非绑定端口,通常会让系统选取一个空闲的本地端口(local port),该端口是独占的,不能和其他tcp连接共享。tcp端口的数据类型是unsigned short,因此本地端口个数最大只有65536,端口0有特殊含义,不能使用,这样可用端口最多只有65535,所以在全部作为client端的情况下,最大tcp连接数为65535,这些连接可以连到不同的server ip。

server最大tcp连接数

server通常固定在某个本地端口上监听,等待client的连接请求。不考虑地址重用(unix的SO_REUSEADDR选项)的情况下,即使server端有多个ip,本地监听端口也是独占的,因此server端tcp连接4元组中只有remote ip(也就是client ip)和remote port(客户端port)是可变的,因此最大tcp连接为客户端ip数×客户端port数,对IPV4,不考虑ip地址分类等因素,最大tcp连接数约为2的32次方(ip数)×2的16次方(port数),也就是server端单机最大tcp连接数约为2的48次方。

实际的tcp连接数

上面给出的是理论上的单机最大连接数,在实际环境中,受到机器资源、操作系统等的限制,特别是sever端,其最大并发tcp连接数远不能达到理论上限。在unix/linux下限制连接数的主要因素是内存和允许的文件描述符个数(每个tcp连接都要占用一定内存,每个socket就是一个文件描述符),另外1024以下的端口通常为保留端口。在默认2.6内核配置下,经过试验,每个socket占用内存在15~20k之间。

影响一个socket占用内存的参数包括:

rmem_max

wmem_max

tcp_rmem

tcp_wmem

tcp_mem

grep skbuff /proc/slabinfo

对server端,通过增加内存、修改最大文件描述符个数等参数,单机最大并发TCP连接数超过10万 是没问题的,国外 Urban Airship 公司在产品环境中已做到 50 万并发 。在实际应用中,对大规模网络应用,还需要考虑C10K 问题。

如下图:

常识一:文件句柄限制

在linux下编写网络服务器程序的朋友肯定都知道每一个tcp连接都要占一个文件描述符,一旦这个文件描述符使用完了,新的连接到来返回给我们的错误是“Socket/File:Can't open so many files”。

这时你需要明白操作系统对可以打开的最大文件数的限制。

  • 进程限制

    • 执行 ulimit -n 输出 1024,说明对于一个进程而言最多只能打开1024个文件,所以你要采用此默认配置最多也就可以并发上千个TCP连接。

    • 临时修改:ulimit -n 1000000,但是这种临时修改只对当前登录用户目前的使用环境有效,系统重启或用户退出后就会失效。

    • 重启后失效的修改(不过我在CentOS 6.5下测试,重启后未发现失效):编辑 /etc/security/limits.conf 文件, 修改后内容为

      * soft nofile 1000000

      * hard nofile 1000000

    • 永久修改:编辑/etc/rc.local,在其后添加如下内容

      ulimit -SHn 1000000

  • 全局限制

    • 执行 cat /proc/sys/fs/file-nr 输出 9344 0 592026,分别为:1.已经分配的文件句柄数,2.已经分配但没有使用的文件句柄数,3.最大文件句柄数。但在kernel 2.6版本中第二项的值总为0,这并不是一个错误,它实际上意味着已经分配的文件描述符无一浪费的都已经被使用了 。

    • 我们可以把这个数值改大些,用 root 权限修改 /etc/sysctl.conf 文件:

      fs.file-max = 1000000

      net.ipv4.ip_conntrack_max = 1000000

      net.ipv4.netfilter.ip_conntrack_max = 1000000

常识二:端口号范围限制?

操作系统上端口号1024以下是系统保留的,从1024-65535是用户使用的。由于每个TCP连接都要占一个端口号,所以我们最多可以有60000多个并发连接。我想有这种错误思路朋友不在少数吧?(其中我过去就一直这么认为)

我们来分析一下吧

  • 如何标识一个TCP连接:系统用一个4四元组来唯一标识一个TCP连接:{local ip, local port,remote ip,remote port}。好吧,我们拿出《UNIX网络编程:卷一》第四章中对accept的讲解来看看概念性的东西,第二个参数cliaddr代表了客户端的ip地址和端口号。而我们作为服务端实际只使用了bind时这一个端口,说明端口号65535并不是并发量的限制。

  • server最大tcp连接数:server通常固定在某个本地端口上监听,等待client的连接请求。不考虑地址重用(unix的SO_REUSEADDR选项)的情况下,即使server端有多个ip,本地监听端口也是独占的,因此server端tcp连接4元组中只有remote ip(也就是client ip)和remote port(客户端port)是可变的,因此最大tcp连接为客户端ip数×客户端port数,对IPV4,不考虑ip地址分类等因素,最大tcp连接数约为2的32次方(ip数)×2的16次方(port数),也就是server端单机最大tcp连接数约为2的48次方。

 

第一步,修改/etc/security/limits.conf文件,在文件中添加如下行:

复制代码

复制代码

...
# End of file
speng soft nofile 10240
speng hard nofile 10240
root soft nofile 65535
root hard nofile 65535
* soft nofile 65535
* hard nofile 65535

复制代码

echo ulimit -HSn 65536 >> /etc/rc.local
echo ulimit -HSn 65536 >>/root/.bash_profile
ulimit -HSn 65536

 备注:
对mysql用户可同时打开文件数设置为10240个;
将Linux系统可同时打开文件数设置为1000000个(一定要大于对用户的同时打开文件数限制);
将Linux系统对最大追踪的TCP连接数限制为20000个(但是,建议设置为10240;因为对mysql用户的同时打开文件数已经限制在10240个;且较小的值可以节省内存);
将linux系统端口范围配置为1024~30000(可以支持60000个以上连接,不建议修改;默认已经支持20000个以上连接);

 综合上述四点,TCP连接数限制在10140个。

这10240个文件中还得除去每个进程必然打开的标准输入,标准输出,标准错误,服务器监听 socket,进程间通讯的unix域socket等文件。

 

Linux下查看tcp连接数及状态命令:

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
ES启动报错:Caused by: java.net.SocketException: No buffer space available (maximum connections reached?) 线上服务的es突然挂掉导致网站无法正常访问,看了下是es服务停止了,于是重启后出现了如下报错,对于报错信息的重点关注:Caused by: java.net.SocketException: No buffer space available (maximum connections reached?): connect 看报错信息是连接数太多,耗尽了某种资源。 查看当前所有的连接,执行命令:netstat -ano ,发现大量的TCP连接。尤其是应用的80端口的连接数达到了65535,是应用中调用连接过多 阅读详情

相关推荐

Zabbix自定义监控内容部署+邮件报警+Zabbix自愈+Zabbix批量添加主机

1)先明确获取监控指标数据的命令或脚本;2)在被监控主机配置文件子目录()中创建以.conf后缀的监控项配置文件,自定义获取监控指标数据的键值;3)在服务端Web管理页面中依次添加模板 - 监控项 - 触发器 - 图形4)关联监控主机和监控模板。

m0_67497257的博客 1091

关于ES的几个问题

本文来说下关于ES的几个问题 文章目录概述 概述 经常遇到很多朋友询问,如何学好Elasticsearch?这个问题本质上很不好回答,但我一直又很想好好回答,所以本文就以我个人的经验视角,跟大家探讨一下如何正确的拥抱Elasticsearch。若有不当之处,欢迎留言指正。 ...

wh柒八九的博客 1015

Zabbix整合ELK实现日志数据的分析实时监控

一,ELK和Zabbix的关系? ELK是一套组合的日志收集系统,由Elasticsearch、Logstash和Kibana三个软件组成,通过ELK可以收集系统日志、网站日志、应用系统日志等各种日志数据,并且还可以对日志进行过滤、筛选,然后进行集中存放并可用于实时检索、分析。这是ELK的基础功能。 但是如果我们希望在收集日志的时候,能把异常的日志信息(错误,失败)等等提取出来及时发送给运维人员,...

ZhanBiaoChina的博客 5213

elasticsearch之配置详解

# ------------------------------------ Node ------------------------------------ #集群名字,同一网段内相同名字加入同一集群       cluster.name: test-es #节点名字    node.name: node-1 #节点是否为主节点    node.master: true #节点是

归去来兮 3078

centos7-zabbix安装部署

目录 zabbix 组件说明 构建zabbix 监控 添加监控主机/自动发现 Nginx 并发监控 Web场景 、组合图 报警设置 一、zabbix 组件说明 zabbix 是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级开源解决方案(基于 GPL V2) zabbix 基于 B/S 结构进行 展示 && 收集数据的方式还是以 C/S &&...

weixin_44696896的博客 762

zabbix监控脑裂和脑裂的产生和解决方法

环境说明 zabbix server 192.168.149.133 备keepalived zabbix anget 192.168.149.139 主 keepalived 192.168.149.152 在zabbix客户端配置keepalived备 [root@anget ~]# dnf -y install keepalived [root@anget ~]# vim /etc/keepalived/keepalived.conf ! Configuration File

B_memory的博客 556

Elasticsearch基本配置说明

Elasticsearch的重要配置 https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html 路径配置 Elasticsearch 写索引数据到 data 目录中,写自己的应用日志到 logs 目录中,这两个目录默认是 $ES_HOME 的子目录,在生产环境中我们强烈建议在 elasticserach.yml 文件中设置 path.data 和 path.logs 的路径,并将其设置到

imonkeyi的博客 1049

自锁电路设计

Hi,uu们,是不是经常要用到自锁电路,通常不是使用555芯片就是用比较器来做自锁,今天我们来简单看下自锁电路的设计.图1采用了比较器构建了一个自锁电路,采用低电平复位,当需要复位的时候志需要将反向端的二极管拉低一下即可,免去 三极管控制同相端和电源短接的麻烦。图1:比较器构建的自锁电路也可以使用555去构建,如下图2所示.图2:使用555构建的自锁电路工作原理见555的真值表,真值表如表1所示.表1:555电路真值表相对来说555还是比较贵,所以我就想能不能有个便宜的方法做个自锁电路,构建电路如下图3所示

weixin_43884675的博客 7066

elasticsearch最大节点数_zabbix经常报警elasticsearch节点TCP连接数过高问题

单机最大tcp连接数网络编程在tcp应用中,server事先在某个固定端口监听,client主动发起连接,经过三路握手后建立tcp连接。那么对单机,其最大并发tcp连接数是多少?如何标识一个TCP连接在确定最大连接数之前,先来看看系统如何标识一个tcp连接。系统用一个4四元组来唯一标识一个TCP连接:{local ip, local port,remote ip,remote port}。clie...

weixin_39915171的博客 744

ICCV 2025 | 哈工大、清华等提出首个双曲学习框架:HLFormer,革新局部相关视频检索

离原点越远,代表的语义越具体(部分)。现有方法大多在传统的欧几里得空间中对视频和文本进行建模,但这往往会导致对视频内在层次结构的错误表示,从而影响检索的准确性。通过UMAP对学习到的帧嵌入进行可视化(如下图),可以观察到,来自同一时刻的视频帧在嵌入空间中聚集在一起,清晰地展示了模型对时序关系的捕捉能力。下图的双曲空间可视化进一步证实了模型的层次建模能力:离原点越近的点,代表的语义层级越高、粒度越粗糙,反之亦然。:既然文本查询描述的是视频的一部分,那么在几何表示上,文本的嵌入向量应该从属于视频的嵌入向量。

我爱计算机视觉 1082

PaddleOCR GPU部署:从环境配置到避坑实战指南

本文详细介绍了PaddleOCR GPU部署的全过程,从环境配置到避坑实战指南。通过分析常见的部署失败原因,提供硬件兼容性自查、软件环境精配方案以及路径配置的解决方案,帮助用户高效完成GPU加速的OCR任务部署,避免90%的常见错误。

weixin_30839881的博客 418

zabbix对Windows server的监控

zabbix配置Windows监控 环境 zabbix server ens192:10.127.0.133ens256:172.168.0.2 windows server2012 ens192:172.168.0.3gateway:172.168.0.2 配置共享上网以及端口转发 这里的windows server2012环境使用的是esxi虚拟机,由于上公网的ip不够用,这里我做了nat,但...

chancheng0106的博客 1705

银河麒麟arm64 V10 SP1桌面系统高效部署onnxruntime推理环境实战

本文详细介绍了在银河麒麟arm64 V10 SP1桌面系统上高效部署onnxruntime推理环境的完整实战流程。从系统环境准备、关键依赖安装,到onnxruntime的安装验证,并以YOLOv5模型部署为例进行性能对比分析,提供了在国产化飞腾D2000平台上进行AI边缘推理的实用指南和避坑技巧。

ss78901的博客 636

zabbix添加监控项以及常用的键值

zabbix自身提供了丰富的监控项,下面以“cpu空闲值”为例介绍zabbix如何添加新的监控项 1、创建主机群组 配置——主机群组——创建主机群组 2、创建主机 配置——主机——创建主机 3、添加监控项 配置——主机——监控项(上一步中创建的主机中)——创建监控项 4、添加触发器 配置——主机——触发器——创建触发器 5、设置报警媒介 管理...

keil_wang的博客 1万+

台球 PCOL:极致物理还原的网页斯诺克引擎(附源码深度解析)

*完整源码地址**:[https://github.com/billiards/pcol-core](https://github.com/billiards/pcol-core)(包含详细文档与示例)通过这个项目,我们不仅创建了一个游戏,更构建了一个**可扩展的物理引擎框架**,为网页端复杂物理模拟开辟了新的可能性。**在线体验**:[https://pcol.billiards](https://pcol.billiards)(支持移动端触控操作)clone.velocity.x *= -0.92;

Loving_enjoy的博客 2797

大数据分析案例-基于决策树算法构建世界杯比赛预测模型

本项目旨在分析往届世界杯比赛数据,找出规律,最后使用决策树算法构建世界杯比赛预测模型,给出两个球队即可预测胜率,可以给爱看球的小伙伴提供一个参考。本次实验我们使用了2018年及其之前的世界杯比赛数据,通过建立决策树模型,模型准确率为82%,接着我们使用该模型预测了2022年世界杯的5场半决赛及决赛,模型准确率也是接近80%的,说明模型效果还是很不错的。心得与体会:通过这次Python项目实战,我学到了许多新的知识,这是一个让我把书本上的理论知识运用于实践中的好机会。

m0_64336780的博客 1万+

zabbix监控80端口并实现sendmail邮件报警

使用外部邮箱发送报警信息。第一步:关闭postfix,安装配置sendmail;servicepostficstop servicepostfixstop chkconfigpostfixoff yum-yinstallmailxsendmail配置sendmail#servicesendmailstart#sendmail监听25端口...

weixin_34226182的博客 379

HTML5+CSS3+JS小实例:扇形展开折叠菜单

你肯定见过那种圆形浮动按钮(FAB),点一下弹出几个选项。大部分实现就是菜单项从底下往上"弹"出来,排成一列——能用,但没啥记忆点。后来我看到 Path 那个经典的扇形菜单,点一下,五个按钮像花瓣一样从中心散开,每个带不同的延迟和弹性曲线。当时就觉得:这才对嘛,交互就该有点"戏剧性"。今天拆一个纯手写版本,HTML + CSS + JS,不依赖任何库。六菜单项、扇形 144° 展开、弹性过渡、点击关闭、键盘可达——该有的都有。

艾恩小灰灰的博客 164

zabbix自定义监控

1.详细讲解自定义监控 1.认识Template OS Linux 模块的所有监控项都是干什么的 2.自定义一个监控项 ( 创建监控项中的所有选项 ) 3.历史保留如何计算? ( 数据 ) days*(items/refresh rate)*24*3600*bytes items:监控项数量。 days:保留历史数据的天数。 refresh rate:监控项的更新间隔。 bytes:保留单个...

流星花雨的博客 572

OpenCV计算机视觉实战(11)——边缘检测详解

在本节中,我们系统介绍了三大经典边缘检测算子,包括 Sobel 算子:一阶导数平衡了噪声抑制与边缘提取,结合方向信息可用于纹理分析与车道检测;Laplacian 算子:二阶导数对微小亮度突变尤为敏感,配合零交叉和细化技术,可精确捕捉任意方向的细节边缘;Canny 算法:集成多阶段处理与双阈值策略,通过多尺度融合与自适应阈值优化,达到抗噪与细节兼顾的卓越效果。

qq_30167691的博客 4375

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

zabbix4.0(一) Zabbix实现对服务器端口的自定义监控

介绍 服务器上跑了很多应用,和一些api接口,现在需要把他们全部监控起来,下面介绍通过zabbix对服务器上端口的监控,实现端口挂掉之后,通过zabbix报警通知到运维人员 准备 先准备两台服务器,已经部署好了zabbix-sever和zabbix-agent 服务器 ip 系统 zabbix-server 192.168.1.70 centos7.2 za...

Linux中文社区 3773

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Zabbix监控原理及架构

前言: 什么是Zabbix? Zabbix是一个用于网络,操作系统和应用程序的开源监控软件,它旨在监视和跟踪各种网络服务, 服务器和其他硬件的状态。 为什么需要对各类系统运行进行监控? 当系统构建时的正常流程中,通常是不允许未被监控的系统或应用上线的,因为 来被监控的系统存在不可预知性,故障未知等不确定因素,且无法及时被发现并 排除的,这时整个架构或系统来说都是非常大的风险因患...

weixin_43831670的博客 5067

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

zabbix

监控收集信息方式: 被动模式(监控对象上报故障) 优点:占用网络资源少,占用存储资源少 缺点:及时性差 主动模式(定时查看业务状态) 优点:及时性好 缺点:占用资源 一.Zabbix 部署 环境:IP 主机名 ...

weixin_46018506的博客 2048

zabbix监控kafka模板_Zabbix4.0 实现对服务器端口的自定义监控

介绍服务器上跑了很多应用,和一些api接口,现在需要把他们全部监控起来,下面介绍通过zabbix对服务器上端口的监控,实现端口挂掉之后,通过zabbix报警通知到运维人员准备先准备两台服务器,已经部署好了zabbix-sever和zabbix-agent服务器ip系统zabbix-server192.168.1.70centos7.2zabbix-agent192.168.1.6centos7.2...

weixin_39653361的博客 607
上一篇: Elasticsearch常用配置及性能参数
下一篇: Linux性能优化实战学习笔记:第三十四讲
王树民
博客等级 码龄10年 912粉丝 560原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值