cpu时间

vmstat,iostat,sar命令详解

折月煮酒 提交于 2020-02-27 13:38:46
Procs   r: 等待运行的进程数 b: 处在非中断睡眠状态的进程数 w: 被交换出去的可运行的进程数。此数由 linux 计算得出,但 linux 并不耗尽交换空间   Memory   swpd: 虚拟内存使用情况,单位:KB   free: 空闲的内存,单位KB   buff: 被用来做为缓存的内存数,单位:KB   Swap   si: 从磁盘交换到内存的交换页数量,单位:KB/秒   so: 从内存交换到磁盘的交换页数量,单位:KB/秒   IO   bi: 发送到块设备的块数,单位:块/秒   bo: 从块设备接收到的块数,单位:块/秒   System   in: 每秒的中断数,包括时钟中断   cs: 每秒的环境(上下文)切换次数   CPU   按 CPU 的总使用百分比来显示   us: CPU 使用时间   sy: CPU 系统使用时间   id: 闲置时间   准测   r<5,b≈0,   如果fre<minfree,将会出现连续不断的页面调度,将导致系统性能问题。   对于page列,re,pi,po,cy维持于比较稳定的状态,PI率不超过5,如果有pagin发生,那么关联页面必须先进行pageout在内存相对紧张的环境下pagein会强制对不同的页面进行steal操作。如果系统正在读一个大批的永久页面,你也许可以看到po和pi列会出现不一致的增长

读懂vmstat

穿精又带淫゛_ 提交于 2020-02-27 13:35:40
[root@localhost ~]# vmstat -n 3 (每个3秒刷新一次) procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 1 0 144 186164 105252 2386848 0 0 18 166 83 2 48 21 31 0 2 0 144 189620 105252 2386848 0 0 0 177 1039 1210 34 10 56 0 0 0 144 214324 105252 2386848 0 0 0 10 1071 670 32 5 63 0 0 0 144 202212 105252 2386848 0 0 0 189 1035 558 20 3 77 0 2 0 144 158772 105252 2386848 0 0 0 203 1065 2832 70 14 15 0 vmstat所带参数请用man vmstat查看 Procs r: 等待运行的进程数 b: 处在非中断睡眠状态的进程数 w: 被交换出去的可运行的进程数。此数由 linux 计算得出,但 linux 并不耗尽交换空间 Memory swpd:

vmstat命令详解

孤街醉人 提交于 2020-02-27 13:35:10
[root@localhost ~]# vmstat -n 3 (每个3秒刷新一次) procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 1 0 144 186164 105252 2386848 0 0 18 166 83 2 48 21 31 0 2 0 144 189620 105252 2386848 0 0 0 177 1039 1210 34 10 56 0 0 0 144 214324 105252 2386848 0 0 0 10 1071 670 32 5 63 0 0 0 144 202212 105252 2386848 0 0 0 189 1035 558 20 3 77 0 2 0 144 158772 105252 2386848 0 0 0 203 1065 2832 70 14 15 0 vmstat所带参数请用man vmstat查看 Procs r: 等待运行的进程数 b: 处在非中断睡眠状态的进程数 w: 被交换出去的可运行的进程数。此数由 linux 计算得出,但 linux 并不耗尽交换空间 Memory swpd:

进程占用过高cpu的排查

你说的曾经没有我的故事 提交于 2020-02-27 13:33:28
1. vmstat工具,可以查看系统级别的负载情况,包括进程、内存、IO、CPU、系统调用等等 用法:vmstat [options] [delay [count]] 第一行是自上次reboot之后的平均负载,之后的输出是该delay时间段内的增量值(比如中断数、系统调用数等,但像是内存、cpu负载这些参数等就还是实时值) 输出示例: procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 8 266056 130176 1352704 0 0 294 35 665 1552 8 4 86 2 0 1 0 8 264356 130216 1354632 0 0 0 184 1958 2605 1 4 93 2 0 0 0 8 264248 130216 1354660 0 0 0 0 781 1364 1 1 99 0 0 参数解释: Procs r: The number of runnable processes (running or waiting for run time). b: The number of processes in

后端开发必须掌握的Linux命令[性能检测篇]

一个人想着一个人 提交于 2020-02-27 11:09:22
性能监测相关命令 mpstat 功能: 显示CPU的状态信息 这些信息存放在/proc/stat文件中。 在多CPUs系统里, 其不但能查看所有CPU的平均状况信息, 而且能够查看特定CPU的信息。 输入语法: mpstat(选项)(参数) 选项 -A : 此选项等效于# mpstat -I ALL -u -P ALL -I {SUM | CPU | ALL} : 报告中断统计信息。 使用SUM关键字,mpstat命令报告每个处理器的中断总数。使用CPU关键字,显示CPU或CPU每秒接收的每个中断的数量。ALL关键字等效于指定上面的所有关键字,因此显示所有中断统计信息。 -P {cpu [,...] | ON | ALL} : 指示要报告统计信息的处理器编号。cpu是处理器号。注意,处理器0是第一个处理器。 ON关键字表示将为每个在线处理器报告统计信息,而ALL关键字指示要为所有处理器报告统计信息。 参数 间隔时间:每次报告的间隔时间(秒); 次数:显示报告的次数。 输出信息: user 在internal时间段里,用户态的CPU时间(%),不包含 nice值为负 进程 (usr/total)*100 nice 在internal时间段里,nice值为负进程的CPU时间(%) (nice/total)*100 system 在internal时间段里,内核态的CPU时间(%)

线上服务CPU很高该怎么做(转载)

你说的曾经没有我的故事 提交于 2020-02-27 02:27:33
1、故障现象 客服同事反馈平台系统运行缓慢,网页卡顿严重,多次重启系统后问题依然存在,使用top命令查看服务器情况,发现CPU占用率过高 2、CPU占用过高问题定位 2.1、定位问题进程 使用top命令查看资源占用情况,发现pid为14063的进程占用了大量的CPU资源,CPU占用率高达76.1%,内存占用率也达到了29.8% [ ylp@ylp-web-01 ~ ] $ top top - 14:51:10 up 233 days, 11:40, 7 users, load average: 6.85, 5.62, 3.97 Tasks: 192 total, 2 running, 190 sleeping, 0 stopped, 0 zombie %Cpu ( s ) : 97.3 us, 0.3 sy, 0.0 ni, 2.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 16268652 total, 5114392 free, 6907028 used, 4247232 buff/cache KiB Swap: 4063228 total, 3989708 free, 73520 used. 8751512 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+

调度系统设计精要

百般思念 提交于 2020-02-26 22:26:34
作者 | Draveness 导读 :本文作者写这篇文章前前后后大概 2 个月的时间,全文大概 2w 字,建议收藏后阅读或者通过电脑阅读。 调度是一个非常广泛的概念,很多领域都会使用调度这个术语,在计算机科学中, 调度 就是一种将任务(Work)分配给资源的方法。任务可能是虚拟的计算任务,例如线程、进程或者数据流,这些任务会被调度到硬件资源上执行,例如:处理器 CPU 等设备。 图 1 - 调度系统设计精要 本文会介绍调度系统的常见场景以及设计过程中的一些关键问题,调度器的设计最终都会归结到一个问题上 — 如何对资源高效的分配和调度以达到我们的目的,可能包括对资源的合理利用、最小化成本、快速匹配供给和需求。 图 2 - 文章脉络和内容 除了介绍调度系统设计时会遇到的常见问题之外,本文还会深入分析几种常见的调度器的设计、演进与实现原理,包括操作系统的进程调度器,Go 语言的运行时调度器以及 Kubernetes 的工作负载调度器,帮助我们理解调度器设计的核心原理。 设计原理 调度系统其实就是调度器(Scheduler),我们在很多系统中都能见到调度器的身影,就像我们在上面说的,不止操作系统中存在调度器,编程语言、容器编排以及很多业务系统中都会存在调度系统或者调度模块。 这些调度模块的核心作用就是对有限的资源进行分配,以实现最大化资源的利用率或者降低系统的尾延迟

Java线程同步和并发第1部分

限于喜欢 提交于 2020-02-26 16:45:24
通过优锐课核心java学习笔记中,我们可以看到,码了很多专业的相关知识, 分享给大家参考学习。我们将分两部分介绍Java中的线程同步,以更好地理解Java的内存模型。 介绍 Java线程同步和并发是复杂应用程序各个设计阶段中讨论最多的主题。 线程,同步技术有很多方面,它们可以在应用程序中实现高并发性。 多年来,CPU(多核处理器,寄存器,高速缓存存储器和主内存(RAM))的发展已导致通常是开发人员往往忽略的某些领域-例如线程上下文,上下文切换,变量可见性,JVM内存 型号与CPU内存型号。 在本系列中,我们将讨论Java内存模型的各个方面,包括它如何影响线程上下文,Java中实现并发的同步技术,竞争条件等。在本文中,我们将重点讨论线程,同步的概念 技术以及Java和我们的CPU的内存模型。 概括 在深入研究线程和同步这一主题之前,让我们快速回顾一下一些与线程相关的术语和概念。 1.Lock —锁是线程同步机制。 2. Java中的每个对象都有一个与之关联的固有锁。线程使用对象的监视器进行锁定或解锁。锁可以视为逻辑上是内存中对象标头的一部分的数据。有关监视器无法实现的扩展功能,请参见ReentrantLock。 3.Java中的每个对象都有同步方法,wait()和notify()[也notifyAll()]。任何调用这些方法的线程都使用其监视器获得该对象的锁

Sleep(0)的妙用

只愿长相守 提交于 2020-02-26 11:45:51
原文地址:https://blog.csdn.net/qiaoquan3/article/details/56281092/ Thread.Sleep(0) 表示挂起0毫秒,你可能觉得没作用,你要写Thread.Sleep(1000) 就有感觉了。似乎毫无意义。 MSDN的说明:指定零 (0) 以指示应挂起此线程以使其他等待线程能够执行。 Thread.Sleep(0) 并非是真的要线程挂起0毫秒,意义在于这次调用Thread.Sleep(0)的当前线程确实的被冻结了一下,让其他线程有机会优先执行。Thread.Sleep(0) 是你的线程暂时放弃cpu,也就是释放一些未用的时间片给其他线程或进程使用,就相当于一个让位动作。 [AppleScript] 纯文本查看 复制代码 ? 1 2 3 4 5 6 7 8 Thread th = new Thread ( new ThreadStart ( MainForm.StartSplash ) ) ; th.Priority = ThreadPriority.AboveNormal; th.Start ( ) ; Thread.Sleep ( 0 ) ; base.SetStyle ( ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint |

深入理解CAS算法原理

时光怂恿深爱的人放手 提交于 2020-02-26 10:14:59
1、什么是CAS? CAS:Compare and Swap,即比较再交换。 jdk5增加了并发包java.util.concurrent.*,其下面的类使用CAS算法实现了区别于synchronouse同步锁的一种乐观锁。JDK 5之前Java语言是靠synchronized关键字保证同步的,这是一种独占锁,也是是悲观锁。 2、CAS算法理解 对CAS的理解,CAS是一种无锁算法,CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。 CAS比较与交换的伪代码可以表示为: do{ 备份旧数据; 基于旧数据构造新数据; }while(!CAS( 内存地址,备份的旧数据,新数据 )) https://upload-images.jianshu.io/upload_images/5954965-b88918b03518f254?imageMogr2/auto-orient/strip|imageView2/2/w/320/format/webp 注:t1,t2线程是同时更新同一变量56的值 因为t1和t2线程都同时去访问同一变量56,所以他们会把主内存的值完全拷贝一份到自己的工作内存空间,所以t1和t2线程的预期值都为56。 假设t1在与t2线程竞争中线程t1能去更新变量的值,而其他线程都失败。