首页 > 其他分享 >一个监控数据的思考-sockets_used

一个监控数据的思考-sockets_used

时间:2023-09-22 09:04:58浏览次数:58  
标签:used socket IP 通信 TCP 监控 sockets

一个监控数据的思考-sockets_used


背景

最近跟踪一个项目问题.
Grafana的监控了里面有一个tcp的使用监控
CurrEstab 的数据量是:  700-2000 左右
但是同时有一个非常大的: Sockets_used的数据
数据量一般是 CurrEstab的十倍以上.

大家看起来感觉有点模糊, 自己之前看过不少tcp的内核参数,当时没有注意过 Sockets_used的参数. 
然后想着趁着 早上和晚上的时间学习和整理一下. 

关于Socket通信

Socket是一种用于在计算机网络中进行通信的编程接口或通信协议。
它提供了一种通过网络发送和接收数据的方式,使得不同的计算机之间可以相互通信。
通过使用Socket,应用程序可以在网络上建立连接并进行数据的传输。
Socket通常用于实现客户端和服务器之间的通信,它提供了一种可靠的双向通信机制,使得应用程序可以实时地发送和接收数据。

以上是Wetab 的AIGC的内容.
其实这里的解释非常不准确. 
socket 其实至少分为两类,一类是 网络层的socket通信,还有一种是unix的socket 通信.
网络层的一般需要送 tcp / udp 协议栈 但是unix socket 协议可以直接从内核层进行转发, 不需要TCP/IP协议栈的大量包,数据帧,以及校验和等操作. 

所以很多时候 一台机器上面的网络通信都是走的AF_UNIX 而不是 AF_INET的通信协议栈.

比较只管的一个认识就是 mysql数据库的一个参数配置值.
socket=/var/lib/mysql/mysql.sock

AF_UNIX 的参数值是一个路径, 而不是IP:PORT的内容, 用于本地的通信, 效率高. 

关于sockets_used的数值样例

ss -s 的结果为: 

Total: 1501
TCP:   1397 (estab 805, closed 531, orphaned 0, timewait 530)

Transport Total     IP        IPv6
RAW       1         0         1
UDP       251       246       5
TCP       866       190       676
INET      1118      436       682
FRAG      0         0         0

cat /proc/net/sockstat 的结果为:

sockets: used 1501
TCP: inuse 190 orphan 0 tw 500 alloc 867 mem 84
UDP: inuse 246 mem 2
UDPLITE: inuse 0
RAW: inuse 0
FRAG: inuse 0 memory 0

一个理解

socket分为 unix和inet两类. 

一般total 会比tcp要高一些. 因为有很多内核socket通信
如下是mysql数据库的一个样例:

Total: 982 (kernel 2525)
TCP:   306 (estab 197, closed 64, orphaned 0, synrecv 0, timewait 63/0), ports 0

Transport Total     IP        IPv6
*         2525      -         -
RAW       1         0         1
UDP       11        8         3
TCP       242       65        177
INET      254       73        181
FRAG      0         0         0

可以发现 kernel 的数据最大, Total 比TCP要高三倍. 
很多比较经典的软件, 经常使用unix socket 进行同机器内的 IPC通信. 
如果走TCP/IP协议栈, 性能就会差很多,并且CPU的使用要多耗费很多,并且会收到网卡的一些制约(大部分不需要走物理网卡, 只需要走loopback回环网络)

另外 kernel里面的统计比较粗暴, 只要是有的都会被统计, 不管是不是已经closed.或者是释放了.
所以 kernel的数值是最高的. 高于total . 

总结

Grafana的这个 网络socket连接信息的监控页面其实不是很专业. 

不应该展示 sockets_used的这个数据, 会带来很大的误解. 
网络层的建议仅展示走非loopback网卡的真实物理网卡数据, 这样才可以明确的展示机器的实际网络栈信息. 

TCP核心里面 最关注的几个 其实就是 Estab 连接/半链接以及 time_wait的TCP连接数量信息. 

部分优化也是基于建立/关闭/释放的一些设置来的. 

学习永无止境.

附图-网络socket和uinx socket的通信差异

AF_INET

image


AF_UNIX

image

标签:used,socket,IP,通信,TCP,监控,sockets
From: https://www.cnblogs.com/jinanxiaolaohu/p/17721469.html

相关文章

  • 安防监控视频AI智能分析网关:人流量统计算法的应用场景汇总
    TSINGSEE青犀人流量检测算法是内置在智能分析网关中的一种能够通过AI分析和计算人群数量以及密度的算法技术,在提升城市管理效率、改善用户体验和增加安全性方面发挥着重要作用。人流量检测算法在许多领域都有广泛的应用,如智慧城市、智慧交通、智慧景区等。人流量检测算法在一网......
  • 科普:什么是视频监控平台?如何应用在场景中?
    随着科技的发展,监控无处不在,就像一张密不透风的网,将生活中的角角落落都编织在一起。可是,你真的知道什么是安防视频监控平台吗?它可不止是一个简单的通电摄像头,如今的视频监控平台,涵盖了无数精密细致的算法与技术,是通过集成视频监控设备与软件系统,对指定区域或场所进行实时监控与数......
  • 监控
    不同网段的摄像头如何添加在一台录像机上-最简单的方法是可以通过修改子网掩码来完成的,然后直接添加,不用过多设置-举例:例如两个网段的ip地址:ip地址一、192.168.1.xip地址二:192.168.0.x如果不想设置,一般我们可以把子网掩码从255.255.255.0改成255.......
  • Lnton羚通算法算力云平台员工工作服穿戴算法检测 智能监控工作服算法识别
    员工工作服穿戴的AI识别算法基于YOLOv8和Python网络模型的人工智能技术。该算法通过实时监控现场人员的工作服穿戴情况,并在发现违规情况时自动发出警报。我们选择了当前最新的YOLO卷积神经网络模型YOLOv8来进行火焰识别检测。YOLOv8的每个图像推理时间最快为0.007秒,即每秒可处理140......
  • 代码随想录算法训练营-贪心算法-5|56. 合并区间、738. 单调递增的数字、968. 监控二叉
    56. 合并区间时间复杂度:O(nlogn)空间复杂度:O(logn),排序需要的空间开销1classSolution:2defmerge(self,intervals):3result=[]4iflen(intervals)==0:5returnresult#区间集合为空直接返回67int......
  • 提升系统管理:监控和可观察性在DevOps中的作用
    在不断发展的DevOps世界中,深入了解系统行为、诊断问题和提高整体性能的能力是首要任务之一。监控和可观察性是促进这一过程的两个关键概念,为系统的健康和性能提供了宝贵的可见性。虽然这些术语经常可以互换使用,但它们代表着理解和管理复杂系统的不同方法。在本文中,将探讨监视和可......
  • systemd path:实时监控文件和目录的变动
    回到Systemd系列文章大纲systemdpath:实时监控文件和目录的变动systemdpath工具提供了监控文件、目录变化并触发执行指定操作的功能。有时候这种监控功能是非常实用的,比如监控到/etc/nginx/nginx.conf或/etc/nginx/conf.d/发生变化后,立即reloadnginx。虽然,用户也可以使用in......
  • 视频监控/视频AI智能分析网关:持刀检测算法场景汇总
    TSINGSEE青犀AI智能分析网关——持刀检测算法,是一种利用计算机AI分析算法技术来检测和辨别视频中是否存在刀具的算法,用来保障群众安全,维护公共治安,还可以与“人员跌倒”、“人员聚集”、“人员跌倒”等算法结合,制定一体化的安全监管体系,可以应用于各种场景,主要包括以下几个方面:1、......
  • 以服务方式启动安防监控EasyNVR程序出现播放异常,是什么原因?
    EasyNVR安防视频监控平台的特点是基于RTSP/Onvif协议,将前端设备统一接入,在平台进行转码、直播、处理及分发,在智慧安防视频监控场景中,EasyNVR可实现实时监控、云端录像、检索与回放、云存储、告警、级联等视频能力,极大满足行业的视频监控需求。在运行安防监控系统EasyNVR软件时,我们......
  • 安防监控视频云存储平台EasyNVR对接EasyNVS时,一直不上线该如何解决?
    视频安防监控平台EasyNVR可支持设备通过RTSP/Onvif协议接入,并能对接入的视频流进行处理与多端分发,包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等多种格式。近期有用户在使用安防视频平台EasyNVR对接上级平台EasyNVS时,出现了一直不上线的情况。为给用户带来最优体验,技术人员立即......