服务器cpu

详解服务器性能测试的全生命周期?——从测试、结果分析到优化策略(转载)

喜夏-厌秋 提交于 2019-12-16 10:02:51
服务器性能测试是一项非常重要而且必要的工作,本文是作者Micheal在对服务器进行性能测试的过程中不断摸索出来的一些实用策略,通过定位问题,分析原因以及解决问题,实现对服务器进行更有针对性的优化,提升服务器的性能。 1. 服务器性能测试小结 讲到服务器性能大部分人会想到这个服务器的架构是什么样子的,用的什么epoll,select,spring,tornado之类的。其实从本质上来看的话目前大部分的服务器主要包括逻辑层以及DB层,我们采用的各种框架组件处于逻辑服务器中,如下图所示。 服务器性能测试是一项比较繁琐的事情,作为没有做过性能测试的同学可能需要理清楚以下几个事情。 1.1. 协议分析 首先是协议分析,性能测试本质上是我们用代码来模拟真实的用户请求,所以我们必须要知道发送出去的请求内容才能模拟。在典型的CS服务器中很多使用了protobuf,thrift,tdr(腾讯自研)来序列化以及反序列号请求内容。 序列化之后一方面可以对数据进行压缩处理,另一方面也避免请求内容明文传输造成被抓包·泄漏数据的危险。之前有过服务器传输数据的时候使用的是明文直接发送,而且这个数据是一些敏感的sql语句,这样首先暴露了数据库的表结构,同时不法分子可以通过模拟发包造成“脱裤”甚至是数据被清空。 1.1.1. Protobuf 谷歌出品,必属精品。Protobuf使用起来很方便,学习成本非常低

一次服务器CPU占用率高的定位分析

纵饮孤独 提交于 2019-12-10 16:20:45
背景 通过性能监控发现上线服务器cpu某核占用率已经达到了100%,而且是由我们的某个核心服务导致的。幸亏由于我们的服务进程由多个相同worker(线程)调度承担的,所以除了CPU占用率高之外,并没有对服务造成影响。随着上次我们找到那个吃IO的罪犯,这次我们要追捕的是潜伏在团体中的特务,更加惊险刺激哟! 系统环境 用 top命令 很容易定位到是谁占用CPU最高。 以我们的这个业务进程(imDevServer)举例,为什么说这货是个潜伏者呢?因为这是个多线程的进程,我们要知道实际上占用cpu的最小单位是线程,所以肯定是众线程中的某一个或几个占用CPU过高导致的。再用 top -H -p pid命令 查看进程内各个线程占用的CPU百分比。 如上图所示我们可以看出id为8863的线程cpu占用率最高。好,我们现在只要能找到他偷走的cpu就好了,虽然这小子嘴巴严,但是我们有一套完善的审问流程,不怕他不招。首先出马的是 strace -T -r -c -p pid命令 它的作用是查看系统调用和花费的时间,epoll_wait虽然占用的调用时间多,但是他本身是个正常的阻塞调用。我们接着让 pstack pid出马 可以看到每个线程的调用堆栈,找到已经找出的占用CPU最高的那个线程,然后看他的调用堆栈,很容易看出在哪一步逻辑上导致了busy loop,再使用 trace -p tid

开发自动化系列-工具集(二)系统性能监控工具

∥☆過路亽.° 提交于 2019-12-07 13:02:48
摘 要 孔子云:工欲善其事,必先利其器。作为开发人员,我们致力于为最终用户实现工作流程自动化;然而,许多开发人员却疏忽了将自己的开发流程自动化。企业级应用系统涉及到开发、测试、部署、实施等一系列开发流程,在整个软件开发过程中我们如何借助工具、方法和模式使过程简单自动化,减少一些低效繁琐的开发工作量。 本系列试图使用一系列的工具介绍帮助大家在日常工作中减轻繁杂低效的开发工作,借助于现有的一系列工具提升大家的开发效率,使大家日常工作做到事半功倍。 在 Java 程序的开发过程中,不可避免地会遇到内存使用、性能瓶颈等问题。 Java Profiler 工具能帮助开发人员快速、有效地定位这些问题,因此成为了 Java 开发过程中的一个重要工具 。 本文作为该系列的第二章,介绍Java EE应用的系统性能监控工具JProfiler,JProfiler 可以通过时时的监控系统的内存使用情况,随时监视垃圾回收,线程运行状况等手段,从而很好的监视 JVM 运行情况及其性能。 通过介绍这个工具的使用,帮助开发人员发现系统应用的性能瓶颈,提升系统运行性能。 一、 JProfiler 是什么? JProfiler 是一个全功能的 Java 剖析工具( profiler ),专用于分析 J2SE 和 J2EE 应用程序。它把 CPU 、执行绪和内存的剖析组合在一个强大的应用中。 JProfiler

服务器性能配置要点总结

半腔热情 提交于 2019-12-07 12:51:15
一般来说,服务器性能主要由三部分决定: 1.服务器的硬件配置 2.服务器操作系统 3.应用程序 服务器硬件配置主要有: 图 1.0 服务器集群 (1).CPU 一般来说CPU的数量越多,主频越高,那么服务器的性能也就会越好。在实际测试过程中,如果在大压力下持续观察CPU的使用率很低,那么CPU的资源基本上是可以满足服务器要求的。这样的情况其实是有点浪费CPU资源的,比较理想的情况是压力不大的时候CPU利用率比较低,压力上来之后CPU利用率保持在60%-70%。大部分的CPU在同一时间内只能运行一个线程,但是超线程的处理器可以在同一个时间运行多个线程,我们可以利用处理前超线程特性提高系统性能。虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的CPU那样,每个CPU都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不等于两颗CPU的性能。 (2).RAM 内存的大小也是影响服务器性能的一个重要因素。内存太小,系统进程要被阻塞,应用程序会变得缓慢,甚至是失去响应;如果太大的话,也是造成一种浪费。Linux系统中采用物理内存和虚拟内存两种方式,使用虚拟内存可以缓解物理内存的不足,但是如果占用过多的虚拟内存的话,应用程序的性能会明显的下降。 (3).网络宽带 网络带宽的大小限制了客户端与服务器交互的流量

2019企业linux运维最需要的了解的一些硬件基础知识

旧巷老猫 提交于 2019-12-06 04:43:56
第 3 章 服务器 245 3 .1 电脑的种类 245 3 .2 服务器的介绍 246 3 .2.1 服务器的类别 246 3 .2.2 服务器的性能 247 3 .2.3 服务器的尺寸 247 3.3 服务器的组成部分 248 3.3.1 CPU 248 3.3.2 内存条 250 3.3.3 硬盘 251 3.3.4 网卡 253 3.3.5 主板 253 3.3.6 阵列卡 253 3.3.7 远程管理口 254 3 .3.8 电源 254 3 .4 机房中机柜的注意事项 254 3 .5 操作系统 255 3 .5.1 什么是操作系统 255 3 .5.2 操作系统的组成部分 255 3 .5.3 linux 常见的操作系统 256 3 .6 服务器的硬件性能比对 256 3.7 最简单易懂的 raid 257 3.7.1 raid0: 257 3.7.2 raid1 257 3.7.3 raid5 258 3.7.4 raid10 258 3.7.5 raid01 259 3.7.6 raid10 和 raid01 的区别 259 3 . 8 企业面试题 260 3 . 8 .1 企业如何储存数据 260 第 3 章 服务器 3 .1 电脑的种类 (1).台式电脑 (2) 笔记本 服务器 3 .2 服务器的介绍 3 .2.1 服务器的类别 (1).机架式服务器: 企业

线上服务器CPU彪高的调试方式

假如想象 提交于 2019-12-05 11:46:22
原文内容来自于LZ(楼主)的印象笔记,如出现排版异常或图片丢失等问题,可查看当前链接: https://app.yinxiang.com/shard/s17/nl/19391737/2fee7b91-fc6e-4e96-838a-b6926b422368 线上服务器CPU彪高的调试方式 1. 使用TOP获取对应的CPU彪高的进程ID 2. top -p 8948 -H 查看8948进程所对应的所有线程,查看引起CPU彪高的线程PID,此处为9037 3. jstack 8948 >/home/xiaoi/8948thread1.txt 打印当前的线程堆栈信息至txt文件当中(尽可能的将2,3步骤同时进行,否则可能出现top所查看得到的线程ID,在导出堆栈信息时已经不再引起CPU彪高了) 4.将所得到的线程PID转换为16进制,如此处的9037转换为16进制后的结果为234d(堆栈信息中存储的是16进制的线程ID,而我们在通过TOP获取到的线程ID为10进制的ID,故需要做一下转换操作) 5.得到对应的转换为16进制后的线程ID为 234d,此时使用vim 查看对应的8948thread1.txt堆栈文件,直接搜索 ?234d 查看对应的234d线程的堆栈信息,发现线程是持续的 RUNNABLE运行状态,查看异常可知是代码底层所调用的谷歌文本对比插件所引起的死循环导致 使用

计算机系统硬件基础

不打扰是莪最后的温柔 提交于 2019-12-05 02:54:57
计算机硬件基础 笔记本,台式机,服务器 示例:dell服务器 1u的服务器 4.45cm高 2u的服务器 4u的服务器 电脑主机组成 一台电脑是由许许多多的零部件组成,只有这些零部件组合在一起协调的工作,才能称之为电脑。 电脑发展到现在,其零部件都有了很大的变化,但其工作原理却没有变,其中包括 主板、CPU、内存、硬盘、显卡、声卡 等等。 电脑电源 功能:保障电脑的电源供应 作用:一个合格的电源对电脑的作用是至关重要的,电源就犹如人体的心脏,随时提供新鲜的血液,即使再聪明的头脑或再敏捷的身手也离不开电脑电源。 劣质的电源不仅直接影响电脑的正常的使用,对主板、显卡等其他配件造成损害,而且这种电源锁产生的电磁辐射,对人身健康也构成了潜在的威胁。在服务器领域,电源的作用更加重要。 因此, 服务器一般都提供双电源 。 主板 主板和CPU都是电脑中最关键的部件 所有的板卡必须通过主板发挥作用,主板的性能和质量的好坏直接影响到整个系统。 电脑主板按不同的架构标准和各种不同的主要部件、接口组合而成。 主板芯片组 主板芯片组是主板上最重要的部件,主板的功能主要取决于芯片组。 芯片组负责管理CPU和内存、各种总线扩展以及外设的支持。 BIOS芯片 BIOS芯片(CMOS芯片) - 负责主板通电后各部件自检,设置,保存,一切正常后才能启动操作系统。 - 记录了电脑最基本的信息

这次,我是如何监控服务器CPU和内存的

南笙酒味 提交于 2019-12-04 04:36:25
背景 在新项目A中,要结合业务做性能测试。对于做过N次性能测试的我,这次有些巧妇有难无米之炊的感觉。以往的项目,服务器都是部署在AWS或者阿里云,像这样的云服务器厂商是可以通过轻松配置各种Dashboard来实时监控整个系统服务器的各种新能。然而,这一次,服务器不在云上,并且不允许连接外网。那出一个类似的服务器CPU和内存实时使用情况的折线图,该如何做呢? 思路 以结果为导向,需要的是一张压测时服务器CPU和内存的折线图,那么如何画图?Excel可以插入类似的折线图,那么数据怎么来?Linux中有些命令可以记录当时的服务器CPU和内存的情况,如果有脚本或者命令把这些数据实时记录下来,并且把这些数据导出到csv文件,然后借助Excel就能得我们要的结果。 过程 脚本 #!/bin/bash fileName=$1 echo "CPU%,MEM%,TIME" > $fileName for (( i = 0; i < 3000; i++ )) do output=`top -b -n1 | grep "Cpu(s)" | awk '{print $2 ","}' | tr -d '\n' && free -m | grep 'Mem' | awk '{print $3/$2 * 100 ","}' | tr -d '\n' && date | awk '{print $4}'`

服务器选择

让人想犯罪 __ 提交于 2019-12-03 14:40:45
服务器分类(按 体系架构CPU): 使用CISC(复杂指令集): 例如:X86、pc、Intel Xeon、AMD Opteron 使用RISC(精简指令集)或EPIC(并行指令代码): 例如:大小型机、专用UNIX主机、 IBM PowerPC、SUN SPARC ——RISC Intel Itanium(安腾)——EPIC 三者的指的是CPU运算的特点 按外形分:机架式、刀片式、塔式、机柜式 应用层次:入门级(20-30人使用)、工作组、部门级、企业级 尺寸单位Unit简称U,1U=1.75英寸=4.445cm,形容服务器厚度 路:支持CPU个数(单路、双路、四路) CPU核心数:双核、四核、六八十六等等 频率:2.0GHz 、2.4GHz 、3.1GHz 三级缓存:8MB、10MB、15、20、24等 内存槽:个数8、12、16 最大内存容量:64GB、128G、192、768等 硬盘规格:2.5寸SAS(相对后者速度较快)、3.5寸SATA 盘架数量:。。。。。。。 最大硬盘 :。。。。。。。 品牌:联想、浪潮、曙光、长城、IBM(IBM System X3xxx系列)、Dell、HP、SUN....... 稳定第一、高可用性、配置实用、适合拓展性 来源: https://www.cnblogs.com/will-wu/p/11800405.html

服务器硬件组成及作用

匿名 (未验证) 提交于 2019-12-02 23:56:01
CPU:运算处理,发出控制指令。     CPU路数:路数多少表示服务器最多可以安装多少CPU。     CPU核心数:核心处理服务器系统任务,核数越高处理任务能力越强。 内存:临时存储数据,数据可能会造成丢失。 硬盘:分为固态硬盘和机械硬盘。     硬盘是永久存储数据 网卡:实现数据传输。 主板:汇总整合所有硬件。 机柜: 风扇:散热 电源:供电     这里需要注意一下服务器的电源需要具备冗余能力即:1、服务器有多个电源。2、UPS不间断供电系统。3、发电机‘ 远程管理卡:在服务器关机状态下可以远程把服务器开机并可以管理服务器。 阵列卡:可以将多块硬盘容量整合为一块,增加磁盘容量、增加磁盘性能、增加磁盘安全性。 来源:博客园 作者: DPC 链接:https://www.cnblogs.com/Systemctl/p/11436754.html