Linux网络性能评估压测
性能评估是优化网络性能的前提,只有在你发现网络性能瓶颈时,才需要进行网络性能优化。 由于低层协议是高层协议的基础。所以,一般情况下,我们需要从上到下,对每个协议层进 行性能测试,然后根据性能测试的结果,结合 Linux 网络协议栈的原理,找出导致性能瓶颈的根源,进而优化网络性能。 性能指标 带宽,表示**链路的最大传输速率**,单位通常为 b/s (比特 / 秒)。 网卡确定后,带宽也就确定 了(当然,实际带宽会受限于整个网络链路中最小的那个模块) 吞吐量,表示单位时间内成功传输的**数据量,单位通常为 b/s(比特 / 秒)或者 B/s(字 节 / 秒)。吞吐量受带宽限制,而吞吐量 / 带宽,也就是该网络的使用率**。 很多地方听说过“网络带宽测试”,这里测试的实际上不是带宽,而是网络 吞吐量。Linux 服务器的网络吞吐量一般会比带宽小,而对交换机等专门的网络设备来说, 吞吐量一般会接近带宽。 延时,表示从网络请求发出后,一直到收到远端响应,所需要的时间延迟。在不同场景 中,这一指标可能会有不同...
Linux虚拟内存、buffer、cache、缓存命中率、缓存文件大小
cachetop 跟 top 类似,默认按照缓存的命中次数(HITS)排序,展示了每个进程的缓存命 中情况。具体到每一个指标,这里的 HITS、MISSES 和 DIRTIES ,跟 cachestat 里的含义 一样,分别代表间隔时间内的缓存命中次数、未命中次数以及新增到缓存中的脏页数。而 READ_HIT 和 WRITE_HIT ,分别表示读和写的缓存命中率。 指标–文件在内存中的缓存大小pcstat使用 pcstat 这个工具,来查看文件在内存中的缓存大小以及缓存比例。pcstat 是一个基于 Go 语言开发的工具,所以安装它之前,你首先应该安装 Go 语言 展示了 /bin/ls 这个文件的缓存情况:Cached 就是 /bin/ls 在缓存中的大小,而 Percent 则是缓存的百分比。你看 到它们都是 0,这说明 /bin/ls 并不在缓存中。 ls 命令,再运行相同的命令来查看的话,就会发现 /bin/ls 都在缓 存中了 实验新建文件–第一个终端 确认刚刚生成的文件不在缓存中。...
Linux软件包管理系统
Linux 软件包管理系统软件包管理是指系统中一种安装和维护软件的方法。 大多数发行版分别属于两大包管理技术阵营: Debian 的”.deb”,和红帽的”.rpm”。 包管理系统 发行版 (部分列表) Debian Style (.deb) Debian, Ubuntu, Xandros, Linspire Red Hat Style (.rpm) Fedora, CentOS, Red Hat Enterprise Linux, OpenSUSE, Mandriva, PCLinuxOS 关于依赖的库程序很少独立工作;他们需要依靠其他程序的组件来完成他们的工作。程序所共有的活动,如输入/输出, 就是由一个被多个程序调用的子例程处理的。这些子例程存储在动态链接库中。动态链接库为多个程 序提供基本服务。如果一个软件包需要一些共享的资源,如一个动态链接库,它就被称作有一个依赖。 现代的软件包管理系统都提供了一些依赖项解析方法,以确保安装软件包时,其所有的依赖也被安装。 包管理工具 发行版 底层工具 上层工具 Debian-Style d...
MongoDB
MongoDB快速回忆可用性和高性能是比较好的 特性概括 不用太多关心一对多关系 基本操作 1、快速构建mongodb环境(docker构建)可视化 2、基本语法(复杂查询语法)show dbs 可以在MongoDB里面运行js 4、mongodb索引使用方法原理 单个索引: 复合索引: 语法 5、mongodb聚合使用方法 6、mongodb高可用(复制集)-使用docker快速构建集群(3个节点)复制集 数据丢失Writeconcern 构建数据集 选举策略 网络分裂:脑裂原本的会自动降级 mongodb分片原理 分片结构 分片架构 分片片键 mongodb数据备份与恢复
MongoDB副本集指标监控
视图预览阿里云 MongoDB 副本集指标展示,包括 CPU 使用率,内存使用率,连接数,网络流量,QPS等 版本支持操作系统支持:Linux 前置条件 服务器 <安装 Datakit> 服务器 <安装 Func 携带版> 阿里云 RAM 访问控制账号授权 RAM 访问控制 登录 RAM 控制台 https://ram.console.aliyun.com/users 新建用户:人员管理 - 用户 - 创建用户 保存或下载 AccessKey ID 和 AccessKey Secret 的 CSV 文件 (配置文件会用到) 用户授权 (只读访问所有阿里云资源的权限) 安装配置说明: 示例 Linux 版本为:CentOS Linux release 7.8.2003 (Core) 通过一台服务器采集所有阿里云 MongoDB 副本集数据 部署实施脚本市场 登录 Func,地址 http://ip:8088 开启脚本市场,管理 - 实验性功能 - 开启脚本市场模块 **依次添加 **三个脚本集 观测云集成 (核心包) 观...
NAT网关监控
视图预览阿里云 NAT 并发连接数,新建连接数,VPC 流量,VPC 数据包等 版本支持操作系统支持:Linux 前置条件 服务器 <安装 Datakit> 服务器 <安装 Func 携带版> 阿里云 RAM 访问控制账号授权 RAM 访问控制 登录 RAM 控制台 https://ram.console.aliyun.com/users 新建用户:人员管理 - 用户 - 创建用户 保存或下载 AccessKey ID 和 AccessKey Secret 的 CSV 文件 (配置文件会用到) 用户授权 (只读访问所有阿里云资源的权限) 安装配置说明: 示例 Linux 版本为:CentOS Linux release 7.8.2003 (Core) 通过一台服务器采集所有阿里云 NAT 数据 部署实施脚本市场 登录 Func,地址 http://ip:8088 开启脚本市场,管理 - 实验性功能 - 开启脚本市场模块 **依次添加 **三个脚本集 观测云集成 (核心包) 观测云集成 (阿里云-云监控) 观测云集成 (...
NIO零拷贝
java的 transformTo transformFrom java是平台无关的,但是JVM是平台相关的。 磁盘上文件拿出来发给用户最原始的实现(c实现)内核空间系统调用–上下文切换–直接内存访问DMA 数据**拷贝到内核空间缓冲区(页缓存)–上下文切换–又拷贝**到了用户空间的缓冲区 内核空间系统调用–上下文切换–用户空间 数据**拷贝到内核空间缓冲区(页缓存)–又拷贝**到了网卡的socket缓冲区–上下文切换–返回用户空间 用户空间没有对数据修改 4次上下文切换 2次系统调用 4次数据拷贝 零拷贝(c实现)完全依赖操作系统的,不会有数据在用户内核之间拷贝 sendfile() 内核空间系统调用–上下文切换–直接内存访问DMA 数据**拷贝到内核空间缓冲区(页缓存)–数据拷贝**到目标socket的缓冲区–缓冲区到DMA网卡发送–上下文切换–返回用户空间 真正的零拷贝(c实现)文件描述符可以描述数据的一些大小偏移,socket缓存里面只是存这些, DMA 拷贝内核缓冲区(页缓存)之后–Linux 2.4 之后,文件描述符gather操作,数据不会kernel...
Nacos和ribbon实现平滑上下线
首选 https://blog.csdn.net/qq_37362891/article/details/119993038 参考 https://blog.csdn.net/weixin_39827884/article/details/124456326 https://github.com/alibaba/nacos/issues?q=is%3Aissue+ribbon 定时任务1234scheduledfuture schedulewithfixeddelay(runnable command, long initialdelay, long delay, timeunit unit) 创建并执行一个在给定初始延迟后首次启用的定期操作,随后,在每一次执行终止和下一次执行开始之间都存在给...
Netty的整体结构
Netty 的整体结构 https://netty.io/ Netty是一个NIO客户端服务器框架,可以快速轻松地开发网络应用程序,例如协议服务器和客户端。 它极大地简化和简化了诸如TCP和UDP套接字服务器之类的网络编程。 “快速简便”并不意味着最终的应用程序将遭受可维护性或性能问题的困扰。 Netty经过精心设计,结合了许多协议(例如FTP,SMTP,HTTP以及各种基于二进制和文本的旧式协议)的实施经验。 结果,Netty成功地找到了一种无需妥协即可轻松实现开发,性能,稳定性和灵活性的方法。 设计:适用于各种传输类型的统一API-阻塞和非阻塞套接字。基于灵活且可扩展的事件模型,可将关注点明确分离。高度可定制的线程模型:单线程,一个或多个线程池,例如SEDA。真正的无连接数据报套接字支持(从3.1开始) 使用方便:记录良好的Javadoc,用户指南和示例,没有其他依赖关系,JDK 5(Netty 3.x)或6(Netty 4.x)就足够了 表现:更高的吞吐量,更低的延迟。减少资源消耗。减少不必要的内存复制 安全:完整的SSL / TLS和StartTLS支持 ...
OAM角色定义
https://github.com/oam-dev/spec/blob/master/introduction.md 关注点分离开放应用程序模型提出了开发人员负责的部分与平台工程师负责的部分之间明确的关注点分离。 Open Application Model proposed a clear separation of concerns between the parts that developers are responsible for, and the parts that platform engineers are responsible for. 角色定义以基于故事的格式介绍开放式应用程序模型的角色。尽管这不是可能角色的详尽列表,但是这些角色被确定为本规范的主要目标。 *开发人员***Developers:**以代码形式交付业务价值。尽管他们应该了解所交付代码的操作特性operational characteristics,但他们并不关心_如何_满足操作要求。例如,开发人员可能知道他们的代码将数据写入文件系统上的特定路径,而不必自己关心将哪种类型的卷(磁...