cpu时间

浅谈性能测试

ε祈祈猫儿з 提交于 2020-03-19 07:42:32
最近在做性能测试的东西,顺便做一些整理总结。 首先,什么是性能测试? 谈到性能测试,我们经常会听到三个概念:性能测试、压力测试、负载测试,这三个名词的含义,我们先了解一下。 性能测试 :指通过模拟真实的并发用户操作,来判断产品是否能够满足用户的需求;也是为了获得系统在某种特定的条件下(特定的负载条件下)的性能指标数据。比如:微信需要同时支持4亿个用户的接入为一个真实的用户需求,但是我们不可能真实的去接入4亿个用户,只能够通过模拟4亿个真实用户去接入,如果我们通过模拟的方式达到该目标了,就说明满足了这个需求。 压力测试: 指在一定的负载情况(资源占用、接入用户量等)下,验证产品的功能是否还能够正常运行以及系统本身是否正常。也指在什么极限情况下系统会崩溃,系统崩溃后是否具有自我恢复性。通过强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下操作行为,从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力。 压力测试分为 高负载下的长时间 (如24小时以上)的稳定性压力测试和 极限负载情况 下导致系统崩溃的破坏性压力测试。 负载测试: 系统正常工作时所能承受的最大负载,也可称为“容量测试”。模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源

【故障处理】队列等待之enq IV - contention案例

天涯浪子 提交于 2020-03-18 20:07:34
【故障处理】队列等待之 enq IV - contention 案例 1.1 BLOG 文档结构图 1.2 前言部分 1.2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识, ~O(∩_∩)O~ : ① 队列等待之 enq IV - contention 案例(重点) Tips : ① 本文在 itpub ( http://blog.itpub.net/26736162 )、博客园 ( http://www.cnblogs.com/lhrbest ) 和微信公众号( xiaomaimiaolhr ) 上 有同步更新 。 ② 文章中用到的所有代码 、 相关软件 、 相关资料 及本文的pdf版本都 请前往小麦苗的云盘下载 , 小麦苗的 云盘地址见: http://blog.itpub.net/26736162/viewspace-1624453/ 。 ③ 若网页文章代码格式有错乱, 请 下载 pdf 格式的文档来 阅读 。 ④ 在 本篇 BLOG 中 ,代码输出部分一般放在一行一列的表格中。 本文如有错误或不完善的地方请大家多多指正, ITPUB 留言或 QQ 皆可,您的批评指正是我写作的最大动力。 1.3 故障分析及解决过程 1.3.1 数据库 环境介绍 项目 source db db 类型 RAC db version 1

Top命令你最少要了解到这个程度

筅森魡賤 提交于 2020-03-18 17:59:34
top 命令几乎是每个程序员都会用到的Linux命令。这个命令用来查看Linux系统的综合性能,比如CPU使用情况,内存使用情况。这个命令能帮助我快速定位程序的性能问题。 虽然这个命令很重要,但是之前对于这个命令的使用几乎仅限于查看下哪个进程使用的CPU最高,哪个进程占用的内存最高。对于输出的各个参数的含义也是一知半解,更不用说 top 的一些高级用法了。 本篇博客就来具体分析下 top 的详细使用方法。 top 输出参数的含义 在Linux终端输入 top ,一般会有如下输出。 top - 15:34:12 up 127 days, 10:23, 2 users, load average: 0.04, 0.03, 0.00 Tasks: 291 total, 1 running, 290 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.3%sy, 0.0%ni, 98.3%id, 1.3%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1792312k total, 288300k used, 1504012k free, 10384k buffers Swap: 6291452k total, 5380k used, 6286072k free, 14128k cached PID USER PR NI VIRT

进程和程序之间的区别CPU和MMU

a 夏天 提交于 2020-03-18 17:41:02
进程和程序的区别 程序,只占用磁盘的空间。 进程运行在操作系统之上,占用内存,cpu等系统资源。 并发 同一时间运行多个程序,多个进程同时在运行 单道程序设计 A堵塞,B只能进行等待,即使CPU处于空闲状态,而在人机交互的时候堵塞的时候是必然的结果 多道程序设计 时钟中断,到了指定的时间程序必须中断 CPU和MMU 存储的介质越大速度越慢 内存使用的是电信号,速度是非常快的 cache缓存是在寄存器和内存之间的 来源: https://www.cnblogs.com/fandx/p/12518395.html

Java学习笔记4(多线程)

孤者浪人 提交于 2020-03-17 22:55:28
多线程 多个程序块同时运行的现象被称作 并发执行 。多线程就是指一个应用程序中有多条并发执行的线索,每条线索都被称作一条 线程 ,它们会交替执行,彼此间可以进行通信。 进程: 在一个操作系统中,每个独立执行的程序都可称作为一个进程,也就是 “正在运行的程序”。在计算机中,所有的程序都是由CPU执行的,CPU在某个时间点只能执行一个进程,在极短的时间下在不同的进程之间进行切换,给人程序在同时进行的感觉。 线程: 每个运行的程序都是一个进程,在一个进程中可以有多个执行单元同时运行,这些执行单元可以看作程序执行的一条条线索,被称为线程。多条线程看似同时执行,其实不然,它和进程一样,都是 CPU轮流执行的。 继承 Thread类创建多线程 通过继承 Thread类,并重写Thread类中的run()方法便可以实现多线程,在Thread类中提供了start()方法用于启动新线程。 class MyThread extends Thread{ //重写run()方法 public void run(){ while(true){ System.out.println("MyThread类的run()方法在运行"); } } } public class Test{ public static void main(String[] args) { MyThread myThread = new

Java 多线程

╄→гoц情女王★ 提交于 2020-03-17 17:22:46
一、概述 理解多线程先要理解线程,理解线程先要理解进程。 1. 进程 一个正在执行的程序。 每个进程的执行都有一个执行的顺序,顺序是一个执行路径,也叫一个控制单元。 2. 线程 进程中独立的控制单元称为线程。 线程控制进程的执行。 进程中只要有一个线程在执行,进程就不会结束。 一个进程中至少存在一个线程。 3. 多线程 Java 虚拟机启动时,会有一个 java.exe 的执行程序,也就是一个进程。 这个进程中至少存在一个线程负责 java 程序的执行,这个线程的运行代码存在 main 方法中,这个线程称之为主线程。 JVM 启动时除了执行一个主线程,还会启动负责垃圾回收机制的线程。 在一个进程中有多个线程执行的方式,称为多线程。 4. 多线程的意义 多线程能让程序产生同时运行的效果,可以提高程序执行的效率。 例如: java.exe 进程执行主程序时,如果程序的代码非常多,在堆内存中会产生很多对象,而对象调用完后就会变成垃圾。如果垃圾过多的话,可能会导致堆内存出现内存不足的现象,影响程序的运行。这种情况下,如果只有一个线程在运行处理的话,程序执行的效率非常低;如果有多个线程在帮助处理的话,程序执行的效率将大大的提高。 例如:垃圾回收机制的线程在帮助进行垃圾回收的话,那堆内存空间的释放将快很多。 5. CPU 运行的原理 PC 上有很多程序“同时”进行,看起来好像是 CPU “同时

2019年9月25日星期三(STM32 ucos3)

99封情书 提交于 2020-03-17 17:12:09
一.UCOS 1.概念 uc/OS-III(Micro C OS Thee),微型C语言编写的操作系统第三版。是一个可升级,可固化,多任务基于优先级的可抢占式实时内核。 ucos的任务个数不限制,实现了操作系统所需求的大部分功能,资源管理,同步,任务之间的通信。除了这些基本的功能以外,还提供一些其他的实时性内核找不到的特色功能,比如完备的运行时间测量,也可以直接发送信号/消息到某个任务,任务也可以同时等待多个内核对象 由于ucos体积微小,功能强悍,可移植性强,在微控制器领域应用广泛 ucos要收费,有时候我们会选择免费的系统,比如freeRTOS....,以及一些其他和物联网结合操作系统(华为liteOS 阿里巴巴.. 腾讯..) 2.ucos移植 (1)源代码结构 EvalBoards ------------ 工程文件 uc-CPU -------------- CPU相关代码 uc-LIB -------------- 和硬件/编译器 无关的库函数(字符串 数学 内存) uCOS-III ----------- ucos操作系统相关代码 (2)将源码拷贝到工程,修改源码(详情见手册) (3)特性 3.ucos的任务调度和任务 合作式调度 -------- 多个任务按照指定时间和顺序依次运行,下一个任务等待上一个任务时间用完再开始运行 抢占式调度 --------

[Mark] KVM 虚拟化基本原理

混江龙づ霸主 提交于 2020-03-17 06:06:53
X86 操作系统是设计在直接运行在裸硬件设备上的,因此它们自动认为它们完全占有计算机硬件。x86 架构提供四个特权级别给操作系统和应用程序来访问硬件。 Ring 是指 CPU 的运行级别,Ring 0是最高级别,Ring1次之,Ring2更次之…… 就 Linux+x86 来说, 操作系统(内核)需要直接访问硬件和内存,因此它的代码需要运行在最高运行级别 Ring0上,这样它可以使用特权指令,控制中断、修改页表、访问设备等等。 应用程序的代码运行在最低运行级别上ring3上,不能做受控操作。如果要做,比如要访问磁盘,写文件,那就要通过执行系统调用(函数),执行系统调用的时候,CPU的运行级别会发生从ring3到ring0的切换,并跳转到系统调用对应的内核代码位置执行,这样内核就为你完成了设备访问,完成之后再从ring0返回ring3。这个过程也称作用户态和内核态的切换。 那么,虚拟化在这里就遇到了一个难题,因为宿主操作系统是工作在 ring0 的,客户操作系统就不能也在 ring0 了,但是它不知道这一点,以前执行什么指令,现在还是执行什么指令,但是没有执行权限是会出错的。所以这时候虚拟机管理程序(VMM)需要避免这件事情发生。 虚机怎么通过 VMM 实现 Guest CPU 对硬件的访问,根据其原理不同有三种实现技术: 1. 全虚拟化 2. 半虚拟化 3. 硬件辅助的虚拟化 1

Linux查看CPU和内存使用情况

给你一囗甜甜゛ 提交于 2020-03-17 04:05:48
top命令   top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。   运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制显示方式等等。退出 top 的命令为 q (在 top 运行中敲 q 键一次)。    内容解释: 第一行(top):   15:24:36 系统当前时刻   14 days 系统启动后到现在的运作时间   3 users 当前登录到系统的用户,更确切的说是登录到用户的终端数 -- 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目   load average 当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程 第二行(Tasks):   288 total 当前系统进程总数   1 running 当前运行中的进程数   287 sleeping 当前处于等待状态中的进程数   0 stoped 被停止的系统进程数   0 zombie 僵尸进程数 第三行(Cpus):   7.3% us 用户空间占用CPU百分比   2.0% sy

计算机四级操作系统-3-进程线程模型

本小妞迷上赌 提交于 2020-03-16 18:29:25
第3章 进程线程模型 操作系统中最核心的概念是进程,这是对正在运行程序的一个抽象。操作系统的其他所有 内容都是围绕着进程的概念展开的,所以,透彻地理解进程是非常重要的。即使可以利用的 CPU 只有一个,但是通过进程,可以使系统具有支持并发操作的能力,可将一个单独的 CPU 变换 成多个虚拟的 CPU 。 本章通过大量的细节探究进程,以及进程中的运行实体 —— 线程。 3.1多道程序设计模型 采用多道程序设计可以提高 CPU 的利用率。多道程序设计技术充分发挥了处理器与外围 设备以及外围设备之间的并行工作能力,从而提高处理器和其他各种资源的利用率。下面从程 序的顺序执行、程序的执行环境和程序的并发执行几方面介绍多道程序设计模型。 3.1.1 程序的顺序执行 程序是一个在时间上按严格次序前后相继的操作序列,这些操作是机器指令或高级语言编 写的语句。人们习惯的传统程序设计方法是顺序程序设计,计算机也是以顺序方式工作的 : CPU 一次执行一条指令,对内存一次访问一个字节或字,对外部设备一次传送一个数据块。顺序处理 也是人们习惯的思考方法,为了解决一个复杂的问题,人们把它分解成一些较为简单、易于分析 的小问题,然后逐个解决。也可以把一个复杂的程序划分为若干个程序段,然后按照某种次序逐 个执行这些程序段。 我们把一个具有独立功能的程序独占 CPU 直到得到最终结果的过程称为程序的顺序执行。