我们开发的软件服务需要在服务器上运行,所以服务器性能代表了软件的性能上限,因此服务器性能调优是个十分重要的环节,然而大部分同学对服务器性能调优关注的较少,今天从3个部分对服务器性能调优进行介绍,分别是:服务器配置选择,服务器负载分析,服务器内核参数调优。
一台运行了好久的服务器CPU使用率达到100%,脑海中第一个想法就是中病毒了,于是开始了我的杀毒之旅。
在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况,以便性能分析优化。而监控CPU的性能一般包括以下3点:运行队列、CPU使用率和上下文切换。
性能测试为保证软件质量起到重要作用,对于交易量较大的应用系统,性能测试更是一个必不可少的环节。
在本系列的第 1 部分中,我们讨论了如何使用专用游戏服务器,将其与 Docker 打包,然后在Kubernetes 上托管和管理它,这是一个很好的开始。然而,由于我们的 Kubernetes 集群通常是固定大小的,我们可能会耗尽所有可用容量来运行我们需要的所有游戏服务器容器,以匹配所有想玩我们的游戏的玩家——这将是一件非常糟糕的事情。
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。 选项 -a:显示活动内页; -f:显示启动后创建的进程总数; -m:显示slab信息; -n:头信息仅显示一次; -s:以表格方式显示事件计数器和内存状态; -d:报告磁盘状态; -p:显示指定的硬盘分区状态; -S:输出信息的单位。 vmstat 3 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 320 42188 167332 1534368 0 0 4 7 1 0 0 0 99 0 0 0 0 320 42188 167332 1534392 0 0 0 0 1002 39 0 0 100 0 0 0 0 320 42188 167336 1534392 0 0 0 19 1002 44 0 0 100 0 0 0 0 320 42188 167336 1534392 0 0 0 0 1002 41 0 0 100 0 0 0 0 320 42188 167336 1534392 0 0 0 0 1002 41 0 0 100 0 0 一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数 r 表示运行队列(就是说多少个进程真的分配到CPU),我测试的服务器目前CPU比较空闲,没什么程序在跑,当这个值超过了CPU数目,就会出现CPU瓶颈了。这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。top的负载类似每秒的运行队列。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。 b 表示阻塞的进程,这个不多说,进程阻塞,大家懂的。 swpd 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。 free 空闲的物理内存的大小,我的机器内存总共8G,剩余3415M。 buff Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存,我本机大概占用300多M cache cache直接用来记忆我们打开的文件,给文件做缓冲,我本机大概占用300多M(这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。) si 每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。我的机器内存充裕,一切正常。 so 每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。 bi 块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte,我本机上没什么IO操作,所以一直是0,但是我曾在处理拷贝大量数据(2-3T)的机器上看过可以达到140000/s,磁盘写入速度差不多140M每秒 bo 块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。 in 每秒CPU的中断次数,包括时间中断 cs 每秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源
Node_exporter 用于采集Linux系统指标数据数据,prometheus官方提供的exporter,除node_exporter外,官方还提供consul,memcached,haproxy,mysqld等exporter。
最近,烦心事有点多,博客也像是进入了便秘期。虽然还远远不到说放弃的地步,但总有一种挤不出牙膏的郁闷感。很怀念前几个月的冲劲和激情,一天都能存好几篇优质草稿。 看来,张戈博客是首次进入瓶颈阶段了!没办法
由于项目的需要,需要做一个简单监控服务器的CPU利用率、CPU负载、硬盘使用率、内存利用率和服务器的各个端口的开启情况的程序,并把结果通知到监控平台,如果出现异常,监控平台打电话或者发短信通知给具体的运维人员
本次测试报告为***系统的压力做测试总结报告,目的在于总结测试结果,分析系统性能,描述系统是否符合预期的性能要求或者客户的其他需求。
vmstat 命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,MEM内存使用,VMSwap虚拟内存交换情况,IO读写情况。
如出现指标异常要及时停止压测,,则说明流量达到当前的瓶颈,需要停止压测分析并排查原因。待排查和解决问题后再进行下一步压测。
市面上有很多开源的监控告警工具,提供了丰富的、可视化的监控指标,以及告警能力,而对于服务器维度,抛开业务指标外,我们关注的无外乎cpu使用率、内存使用率和磁盘使用率等是否超过了我们既定的安全阈值,如果超过了则推送告警通知,来引起研发人员的关注,从而采取相应的应对措施。
Hi,大家好。随着行业的快速发展,软件系统越来越复杂,功能越来越多,测试人员除了需要保证基本的功能测试质量,性能也随越来越受到人们的关注。但是一提到性能测试,很多人就直接连想到Loadrunner,认为LR就等于性能测试。LR只是性能测试的一个工具,但性能测试不仅仅是LR,本文就给大家逐步开展Web端性能测试。
CPU使用率(%processor time),在80%±5%范围内波动为宜。过低,则服务器CPU利用率不高;过高,则CPU可能成为系统的处理瓶颈。
某公司新开发了一款大IP手游。上线之后不久,发现几十个人上线之后服务器就崩溃了。一开始还能用大量预算来购买服务器用以支撑,但几天之后由于宣传火爆,随着用户的增多,这才发现单纯增加服务器的成本实在太高了。玩家开始逐渐骂服务器垃圾,各种掉线、卡顿、crash。本想领先竞品抢先进入市场,结果收获的却是满怀期待玩家们的流失。为什么!因为没有做压力测试!
%us:表示用户空间程序的cpu使用率(没有通过nice调度) %sy:表示系统空间的cpu使用率,主要是内核程序。 %ni:表示用户空间且通过nice调度过的程序的cpu使用率。 %id:空闲cpu %wa:cpu运行时在等待io的时间 %hi:cpu处理硬中断的数量 %si:cpu处理软中断的数量 %st:被虚拟机偷走的cpu 注:99.0 id,表示空闲CPU,即CPU未使用率,100%-99.0%=1%,即系统的cpu使用率为1%。
当数据库服务经常突然挂断,造成无法访问时我们能做什么?本篇主题就是记录针对这一现象时发现问题,分析问题,最后解决问题的过程。
介绍下一款Linux性能实时监测工具-Netdata,它是Linux系统实时性能监测工具,以web的可视化方式展示系统及应用程序的实时运行状态(包括cpu、内存、硬盘输入/输出、网络等linux性能的数据)。Netdata的web前端响应很快,而且不需要Flash插件。UI很整洁,保持着 Netdata 应有的特性。具体内容文末会简单介绍。
简介 云数据库 Redis(TencentDB for Redis)是由腾讯云提供的兼容 Redis 协议的缓存数据库,具备高可用、高可靠、高弹性等特征。云数据库 Redis 服务兼容 Redis 2.8、Redis 4.0、Redis 5.0 版本协议,提供标准和集群两大架构版本。最大支持 4TB 的存储容量,千万级的并发请求,可满足业务在缓存、存储、计算等不同场景中的需求。 云数据库 Redis 的优势: 主从热备:提供主从热备,宕机自动监测,自动容灾。 数据备份:标准和集群架构数据持久化存储,可提供
前面介绍了如何运用Python获取Oracle数据库的信息以及将数据存入MySQL数据库中
从网上去搜数据库优化基本都是从SQL层次进行优化的,很少有提及到数据库本身的实例优化。就算有也都是基于某个特定数据库的实例优化,本文涵盖目前市面上所有主流数据库的实例优化(Oralce、MySQL、POSTGRES、达梦),按照文章的配置能够将你数据库性能用到80%或以上。
首先需要尽可能的了解优化问题,收集问题期间系统信息并做好存档。根据当前系统问题表现制定优化目标并与客户沟通目标达成一致;通过一系列工具分析系统问题,制定优化方案,方案评审完成后由各负责人员进行实施。若达到优化目标则编写优化报告,否则需要重新制定优化方案。
性能压测场景 1、本次需要对查询接口进行100、200、500并发逐渐递增方式进行性能压测 2、在压测过程中,100、200并发响应时间、吞吐量、报错率为0,满足性能需求 3、当并发用户为500时,报错率达到22%,此时经过监控服务器,发现服务器cpu、内存、硬盘、网络、应用服务gc情况未出现异常,满足指标 4、经过排查,本次应用服务使用的是Dubbo服务,通过修改jmeter断言,返回响应结果提示threadpool is exhausted ,detail msg:Thread poo
为什么你的 ERP/MES/CRM/HR/OA 系统访问首页都很慢,明明你确定打开页面时没有大量的写入操作!
glances是一个基于python语言开发,可以为linux或者UNIX性能提供监视和分析性能数据的功能。glances在用户的终端上显示重要的系统信息,并动态的进行更新,让管理员实时掌握系统资源的使用情况,而动态监控并不会消耗大量的系统资源,比如CPU资源,通常消耗小于2%,glances默认每两秒更新一次数据。同时glances还可以将相同的数据捕获到一个文件,便于以后对报告进行分析和图形绘制,支持的文件格式有.csv电子表格格式和和html格式。
通过揉和众多设计良好的 Nginx 模块,OpenResty 有效地把 Nginx 服务器转变为一个强大的 Web 应用服务器,基于它开发人员可以使用 Lua 编程语言对 Nginx 核心以及现有的各种 Nginx C 模块进行脚本编程,构建出可以处理一万以上并发请求的极端高性能的 Web 应用。
最近,发现个人博客的Linux服务器,数据库服务经常挂掉,导致需要重启,才能正常访问,极其恶心,于是决心开始解决问题,解放我的时间和精力(我可不想经常出问题,然后人工重启,费力费时)。
本文档是完成***压力测试的指导性文件。本文档给出了对测试需求、测试环境、测试过程及测试结果的总体要求, 这也是本测试项目中其他文档编写及结果评价的基础。
性能问题的本质就是系统资源已经到达瓶颈,但请求的处理还不够快,无法支撑更多的请求。 性能分析实际上就是找出应用或系统的瓶颈,设法去避免或缓解它们。
OpenTSDB 是一种基于 HBase 编写的分布式、可扩展的时间序列数据库。官方文档这样描述:OpenTSDB is a distributed, scalable Time Series Database (TSDB) written on top of HBase; 翻译过来就是,基于Hbase的分布式的,可伸缩的时间序列数据库,和上面的意思基本相同。 主要用途,就是做监控系统;譬如收集大规模集群(包括网络设备、操作系统、应用程序)的监控数据并进行存储,查询。 存储到OpenTSDB的数据,是以me
前不久,看到了明哥写的如何用Python发送警告通知到企业微信,想起来之前写过用Pytho发送指定格式数据到钉钉的服务,本文将之前的代码重构下,变成一个:利用Python监控服务器数据,然后有异常就通过钉钉发送给用户。
Part1Linux性能优化 1性能优化 性能指标 高并发和响应快对应着性能优化的两个核心指标:吞吐和延时
原文链接:https://www.cnblogs.com/lonelyJay/p/10076158.html
r 表示运行队列(就是说多少个进程真的分配到CPU),我测试的服务器目前CPU比较空闲,没什么程序在跑,当这个值超过了CPU数目,就会出现CPU瓶颈了。这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。top的负载类似每秒的运行队列。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。
作为一枚测试,或多或少都做过or听说过性能测试。说到性能测试,第一印象可能是高大上,因为它涉及到评估系统的性能、稳定性和可靠性。确实,性能测试水很深,如果玩得比较溜就能发展成性能测试专家、架构师级别。
性能问题的本质就是系统资源已经到达瓶颈,但请求的处理还不够快,无法支撑更多的请求。性能分析实际上就是找出应用或系统的瓶颈,设法去避免或缓解它们。
携程自2013年开始使用Redis,旧时期为Memcached和Redis混用状态。由于Redis在处理性能,可储存key的多样化上有着显著的优势,2017年开始,Memcached全部下线,全公司开始大规模使用Redis。Redis实例数量也由刚开始的几十个增长到几万个,数据量达到百TB规模。作为Redis的运维方,为保证Redis的高可用性,DBA的压力也随Redis使用规模的增大而增大,集群的扩容,上下线,实例扩容都面临着不小的挑战。
1.查看聚合报告和服务器的资源使用图,检查响应时间,事务成功率,CPU,内存和IO使用率是否达到要求,如果出错率达到了总请求的3%,我们会检查是什么原因导致的,修改好后,重新测试;
前几篇我们介绍了怎么对nGrinder改造成阿里云PTS类似的样子,也给大家举例演示了怎么利用nGrinder测试接口性能,那测试结果出来后,就需要对测试结果进行分析,找出性能瓶颈点,今天给大家介绍怎么分析nGrinder的测试结果。
vmstat 是一个相当全面的性能分析工具,通过它可以观察: 1)统的进程状态 2)内存使用情况 3)虚拟内存的使用情况 4)磁盘的I/O、中断、上下文切换 5)CPU的使用情况 使用方式 1)直接执行 vmstat 命令,返回系统当前状态 2)使用参数来指定执行命令的间隔时间 # vmstat 2 1 表示每个两秒采集一次服务器状态 执行结果示例 image.png 结果说明 (1)procs r:等待运行的进程数,当这个值超过了CPU数目,就会出现CPU瓶颈了,一般负载超过了3就比较高,超过了5就高,
这是系列文章的第五篇,主要探讨:Elasticsearch 出现 “429 reject 报错",怎么办?
上节我们讲了如何安装paramiko,这节我们讲如何使用paramiko连接服务器
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
psutil(Python system and process utilities)是python的系统监控及进程的管理的工具,是一个功能很强大的跨平台的系统管理库。 官方文档(https://pythonhosted.org/psutil/)
今天下午,线上阿里云RDS的本地只读从库宕机了,还好,这个个服务器上的数据库实例只是提供了一部分的读需求,很快就复原了,但是上面所有的数据库实例都down掉了,启动实例并保证主从复制关系迫在眉睫。这个过程中发现有一个主从复制的问题值得研究一下,虽然最后我解决了,但是具体的原因没有找到,还请大家帮忙看看,也算是集思广益了,如果某一天找到原因了,再回来更新一下。
最近在工作中经常和性能压测工作打交道,积累了一些性能分析经验,我觉得这些经验对每一个开发者都有帮助的,能开发出性能高的代码也是我们的最终目标。
三、API的生命周期:Design(设计)、Build(构建)、Test(测试)、Document(文档)、Share(发布)、run(运行)、DownLine(下线)。
领取专属 10元无门槛券
手把手带您无忧上云