一个监控数据的思考-sockets_used
一个监控数据的思考-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

AF_UNIX

一个监控数据的思考-sockets_used的更多相关文章
- #CSDN刷票门# 有没有人在恶意刷票?CSDN请告诉我!用24小时监控数据说话!
特别声明: 此次并非针对其他参与2013中国十大优秀开源项目的同行,体系有漏洞要谴责的是制定规则并从中获益但不作为的权贵,草根们制定不了规则但可发现和利用漏洞,这是程序员应有反叛精神没错.但被作为道具 ...
- SQL SERVER 监控数据文件增长情况
在项目前期评估数据库的增长情况,然后根据数据库数据量的增长情况来规划存储的分配其实是一件比较麻烦的事情.因为项目没有上线,用什么来评估数据库的数据增长情况呢? 如果手头没有实际的数据,我们只能从表的数 ...
- ZeroMQ接口函数之 :zmq_socket_monitor - 注册一个监控回调函数
ZeroMQ 官方地址 :http://api.zeromq.org/4-2:zmq-socket-monitor zmq_socket_monitor(3) ØMQ Manual - ØMQ/4.1 ...
- 开源一个监控数据采集Agent:OpenFalcon-SuitAgent
OpenFalcon-SuitAgent 项目地址:github 版本说明 本系统版本划分如下 alpha:内部测试版(不建议使用于生产环境) beta:公开测试版(不建议使用于生产环境) final ...
- 探索Windows Azure 监控和自动伸缩系列3 - 启用Azure监控扩展收集自定义监控数据
上一篇我们介绍了获取Azure的监控指标和监控数据: http://www.cnblogs.com/teld/p/5113376.html 本篇我们继续:监控虚拟机的自定义性能计数器. 随着我们应用规 ...
- 探索Windows Azure 监控和自动伸缩系列2 - 获取虚拟机的监控定义和监控数据
上一篇博文介绍了如何连接Windows Azure: http://www.cnblogs.com/teld/p/5113063.html 本篇我们继续上次的示例代码,获取虚拟机的监控定义和监控数据. ...
- CDH秘籍(两):cloudera Manager存储监控数据
概述 上一篇文章分析了cloudera manager中监控数据.中心数据的存储方式,如何配置外部表等.这一篇文章进一步分析监控数据的存储,配置,调优等. Service Monitor 和 Host ...
- 使用monit搭建一个监控系统
上周用monit搭建或者说定制了一个监控系统,来监控服务器发生事情.当然了主要是监控异常,因为我们的产品属于服务器类型,很多进程都daemon,要不停的运行.我们搭建监控目的不过是出现问题能够及时的知 ...
- 由一个emoji引发的思考
由一个emoji引发的思考 从毕业以来,基本就一直在做移动端,但是一直就关于移动端的开发,各种适配问题的解决,在日常搬砖中处理了就过了,也没有把东西都沉淀下来,觉得甚是寒颜.现就一个小bug,让我们来 ...
- 基于Grafana的监控数据钻取功能应用实践
互联网企业中,随着机器规模以及业务量的爆发式增长,监控数据逐渐成为一种大数据,对监控大数据的分析,包括数据采集.数据缓存.数据聚合分析.数据存储.数据展现等几个阶段.不同阶段有不同的解决方案及支撑工具 ...
随机推荐
- Baidu Comate实践指南,惊艳了我...
1 啥是Baidu Comate Comate是百度开发的编程大模型工具,它基于文心大模型,结合百度积累多年的编程现场大数据和外部优秀开源数据,为我们生成更符合实际研发场景的优质代码:它能提升编码效率 ...
- 一文读懂Spring框架中依赖注入流程
想读懂Spring的依赖注入流程,我们先简单了解一下Ioc和DI是什么? IoC和DI Ioc-Inversion of Control,即"控制反转",不是什么技术,而是一种设计 ...
- 简易机器学习笔记(十一)opencv 简易使用-人脸识别、分类任务
前言 前段时间摸了下机器学习,然后我发现其实openCV还是一个很浩瀚的库的,现在也正在写一篇有关yolo的博客,不过感觉理论偏多,所以在学yolo之前先摸一下opencv,简单先写个项目感受感受op ...
- 【华为云技术分享】LwM2M协议的学习与分享
[摘要] 本文主要对于LwM2M协议进行了简单的介绍,包括协议的体系架构以及特性.对象.资源.接口的定义等,希望对你有所帮助. 1协议简介 LwM2M(Lightweight Machine-To-M ...
- IoT与鸿蒙、低代码、生成式AI,引爆技术浪潮——华为云开发者日南京站成功举办
本文分享自华为云社区<IoT与鸿蒙.低代码.生成式AI,引爆技术浪潮--华为云开发者日南京站成功举办>,作者:华为云社区精选 . 近日,华为云开发者日HDC.Cloud Day南京站成功举 ...
- 云图说 | 通过Helm模板快速部署中间件应用
摘要:通过全容器化Helm模板,快速部署中间件应用. 云容器引擎基于Kubernetes Helm标准的模板提供统一的资源管理与调度,高效地实现了模板的快速部署与后期管理,大幅简化了Kubernete ...
- 实例解析丨一文搞定GaussDB CM服务异常
摘要:本文主要为大家带来如何处理GaussDB CM服务异常问题. 本文分享自华为云社区<[实例状态]GaussDB CM服务异常>,作者:酷哥. 首先确认是否是虚拟机.网络故障,底层故障 ...
- 云小课|聊一聊DRS的数据过滤特性
[本期推荐专题]在DevOps市场中,华为云DevCloud拔得头筹,看它如何助力企业面对商业环境瞬息万变快速响应. [摘要] 目前,DRS已支持其他云.本地IDC.ECS自建MySQL.SQL Se ...
- 解读8大场景下Kunpeng BoostKit 使能套件的最佳能力和实践
摘要:本次鲲鹏 BoostKit 训练营为开发者介绍如何基于鲲鹏 BoostKit 使能套件实现应用性能的加速,并重点剖析性能优化技术和关键能力. 本文分享自华为云社区<[云驻共创]" ...
- 业务并发度不够,数仓的CN可以来帮忙
摘要: CN全称协调节点(Coordinator Node),是和用户关系最密切也是DWS内部非常重要的一个组件,它负责提供外部应用接口.优化全局执行计划.向Datanode分发执行计划,以及汇总.处 ...