cpu时间

Linux iostat监测IO状态

别来无恙 提交于 2020-03-05 12:55:09
Linux系统出现了性能问题,一般我们可以通过top、iostat、free、vmstat等命令来查看初步定位问题。其中iostat可以给我们提供丰富的IO状态数据。 1. 基本使用 $iostat -d -k 1 10 参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;1 10表示,数据显示每隔1秒刷新一次,共显示10次。 # iostat -d -k 1 10 Linux 3.13.0-85-generic (s2-bra) 09/02/2016 _x86_64_ (8 CPU) Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 9.70 11.26 152.88 115117000 1562622226 sdb 0.00 0.00 0.00 732 0 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 2.00 12.00 0.00 12 0 sdb 0.00 0.00 0.00 0 0 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 2.00 0.00 100.00 0 100 sdb 0.00 0.00 0.00 0 0 Device: tps kB

查看Linux进程状态

时光总嘲笑我的痴心妄想 提交于 2020-03-04 14:26:11
一、使用top命令可提供实时的系统处理器的状态监视,它是一个动态的显示过程: 1、第一行的显示的内容是系统的运行状态,同uptime命令 top 22:22:44 当前时间 up 2:45 系统运行时间,格式为时:分 1 user 当前登录用户数 load average: 0.00, 0.00, 0.00 系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。 2、第二、三行为进程和CPU信息 Tasks: 83 total 进程总数 1 running 正在运行的进程数 82 sleeping 睡眠的进程数 0 stopped 停止的进程数 0 zombie 僵尸进程数 Cpu(s): 0.0% us 用户空间占用CPU百分比 0.7% sy 内核空间占用CPU百分比 0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比 98.7% id 空闲CPU百分比 0.0% wa 等待输入输出的CPU时间百分比 0.0% hi 0.0% si 0.0% st 3、第四、五行为内存信息 Mem: 1020540k total 物理内存总量 180324k used 使用的物理内存总量 840216k free 空闲内存总量 13256k buffers 用作内核缓存的内存量 Swap: 2064376k total 交换区总量 0k

深入理解 Kubernetes 资源限制:CPU

谁说胖子不能爱 提交于 2020-03-04 09:30:14
原文地址: https://www.yangcs.net/posts/understanding-resource-limits-in-kubernetes-cpu-time/ 在关于 Kubernetes 资源限制的系列文章的 第一篇文章 中,我讨论了如何使用 ResourceRequirements 对象来设置 Pod 中容器的内存资源限制,以及如何通过容器运行时和 linux control group( cgroup )来实现这些限制。我还谈到了 Requests 和 Limits 之间的区别,其中 Requests 用于在调度时通知调度器 Pod 需要多少资源才能调度,而 Limits 用来告诉 Linux 内核什么时候你的进程可以为了清理空间而被杀死。在这篇文章中,我会继续仔细分析 CPU 资源限制。想要理解这篇文章所说的内容,不一定要先阅读上一篇文章,但我建议那些工程师和集群管理员最好还是先阅读完第一篇,以便全面掌控你的集群。 1. CPU 限制 正如我在上一篇文章中提到的, CPU 资源限制比内存资源限制更复杂,原因将在下文详述。幸运的是 CPU 资源限制和内存资源限制一样都是由 cgroup 控制的,上文中提到的思路和工具在这里同样适用,我们只需要关注他们的不同点就行了。首先,让我们将 CPU 资源限制添加到之前示例中的 yaml: resources:

iOS--App功耗优化

巧了我就是萌 提交于 2020-03-04 08:55:09
良好的用户体验需要如下要素: 电池寿命长。随着能效降低,电池寿命也会降低。但用户想让自己的移动设备全天候待命。 速度快。iOS系统处理复杂操作时仍能提供很好的性能。 响应快。同一时刻消耗太多资源会使UI卡顿,响应用户速度变慢。 温度低。app消耗的硬件资源的越多,系统工作越繁重,设备的温度就会逐渐上升。这时系统会通过一些措施降低设备温度。   iOS运用了很多先进的节能技术确保用户有很好的用户体验,包括软硬件配合优化、先进的App调度机制、网络延时操作、任务优先级管理机制等。   App中很小的低效行为在整个系统中累加后,会对电池寿命、性能、响应速度和温度产生明显的影响。使用苹果推荐的API,以确保系统可以正确地判断如何更好地管理我们的app和app使用的各种资源。分批、减少网络操作。尽可能避免不需要的UI刷新。功耗大的操作应该在用户的控制之中。比如,如果用户正在玩一个视图非常复杂的大型游戏,电量消耗很快用户是可以理解的。不响应用户操作时,app尽量不要执行任何操作。 基本概念   没有一劳永逸地解决能耗问题的方案。很多技术和操作影响着电量的使用:   CPU。 CPU是电能消耗大户,高CPU使用量会迅速消耗掉用户的电池电量。app做的每件事几乎都需要用CPU,所以使用CPU要精打细算,真正有需要时通过分批、定时、有序地执行任务。    设备唤醒 。iOS设备通过睡眠来节能

JSE-1.1.4 内存屏障和CPU缓存

痞子三分冷 提交于 2020-03-03 15:21:35
内存屏障和CPU缓存 【信息】 CPU性能优化手段-缓存 为了提高程序运行的性能 例如:CPU高速缓存。尽可能地避免处理器访问主内存的时间开销,处理器大多会利用缓存以提高性能。 CPU有三级缓存:L1-L3 多级缓存 L1 Cache(一级缓存):CPU第一层高速缓存,分为数据缓存和指令缓存。一般容量在32-4096KB。 L2:由于L1高速缓存容量的限制,为了提高CPU的运算速度,在CPU外部放置一高速存储器,即二级缓存。 L3:现在都是内置的。可以进一步降低内存延迟,同时提升大数据量计算时处理器的性能。具有较大L3缓存的处理器提供更有效的文件系统缓存行为及较短消息和处理器队列长度。 一般多核共享一个L3缓存 ! CPU读数据时,读取顺序:L1-L2-L3-内存-外存储器 缓存同步协议 多CPU读取同样的数据进行缓存,进行不同运算之后,最终写入主内存以哪个CPU为准? MESI协议 ,规定每条缓存有一条状态位,4个状态: 修改态(Modified):此cache行已被修改过(脏行),内容已不同于主存,为此cache专有。 专有态(Exclusive):此cache行内存同于主内存,但不出现与其他cache中。 共享态(Shared):此cache行内容同于主内存,但也出现于其他cache中。 无效态(Invalid):此cache行内容无效(空行) 多处理器时

计算机基础(下)

血红的双手。 提交于 2020-03-03 10:38:01
计算机基础知识想详解 1、cpu详解 cpu的分类与指令集 x86-64(*****) cpu具有向下兼容性 64的cpu既能运行32位的程序也能运行64位的程序 内核态与用户态(*****) 代表cpu的两种工作状态 1、内核态:运行的程序是操作系统,可以操作计算机硬件 2、用户态:运行的程序是应用程序,不能操作计算机硬件 内核态与用户态的转换 应用程序的运行必然涉及到计算机硬件的操作,那就必须有用户态切换到 内核态下才能实现,所以计算机工作时在频繁发生内核态与用户态的转换 多线程与多核芯片 2核4线程: 2核代表有两个cpu,4线程指的是每个cpu都有两个线程=》假4核 4核8线程 4核代表有4个cpu,8线程指的是每个cpu都有两个线程=》假8核 2、存储器 RAM:内存 ROM:“只读内存” 存放计算机厂商写死计算机上的一段核心程序=》BIOS CMOS:存取速度慢,断电数据丢失,耗电量极低 硬盘: 机械硬盘:磁盘 磁道:一圈数据,对应着一串二进制(1bit代表一个二进制位) 8bit比特位=1Bytes字节 1024Bytes=1KB 1024KB=1MB 1024MB=1GB 1024GB=1TB 1024TB=1PB 200G=200*1000*1000B 扇区: 一个扇区通过为512Bytes 站在硬盘的解读,一次性读写数据的最小单为为扇区

linux-top命令查看内存CPU

天涯浪子 提交于 2020-03-02 19:05:11
查看多核CPU命令 mpstat -P ALL 和 sar -P ALL 说明:sar -P ALL > aaa.txt 重定向输出内容到文件 aaa.txt top命令 经常用来监控linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解。 本文通过一个运行中的WEB服务器的top监控截图,讲述top视图中的各种数据的含义,还包括视图中各进程(任务)的字段的排序。 top进入视图 第一行: 10:08:45 — 当前系统时间 10 days, 3:05 — 系统已经运行了10天3小时5分钟(在这期间没有重启过) 1 users — 当前有1个用户登录系统 load average: 0.00, 0.00, 0.00 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。 load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。 第二行: Tasks — 任务(进程),系统现在共有135个进程,其中处于运行中的有1个,134个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。 第三行:cpu状态 0.3% us —

ARM处理器差异浅析

一笑奈何 提交于 2020-03-02 15:26:00
1、ARM处理器解析   ARM9、ARM11是哈佛结构,5级流水线结构,所以性能要高一点。ARM9和ARM11大多带内存管理器,跑操作系统好一点,ARM7适合裸奔。我们惯称的 ARM9系列中又存在ARM9与ARM9E两个系列,其中ARM9 属于ARM v4T架构,典型处理器如ARM9TDMI和ARM922T;而ARM9E属于ARM v5TE架构,典型处理器如ARM926EJ和ARM946E。因为后者的芯片数量和应用更为广泛,所以我们提到ARM9的时候更多地是特指ARM9E系列处理器(主要就是ARM926EJ和ARM946E这两款处理器)。下面关于ARM9的介绍也是更多地集中于ARM9E。 2、流水线差异   对嵌入式系统设计者来说,硬件通常是第一考虑的因素。针对处理器来说,流水线则是硬件差别的最明显标志,不同的流水线设计会产生一系列硬件差异。让我们来比较一下ARM7和ARM9E的流水线,ARM9E从ARM7的3级流水线增加到了5级,ARM9E的流水线中容纳了更多的逻辑操作,但是每一级的逻辑操作却变得更为简单。比如原来 ARM7的第三级流水,需要先内部读取寄存器、然后进行相关的逻辑和算术运算,接着处理结果回写,完成的动作非常复杂;而在ARM9E的5级流水中,寄存器读取、逻辑运算、结果回写分散在不同的流水当中,使得每一级流水处理的动作非常简洁。这就使得处理器的主频可以大幅度地提高

性能排查 -- vmstat 使用

吃可爱长大的小学妹 提交于 2020-03-02 15:24:08
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。 一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数,如: root@ubuntu:~# vmstat 2 1 procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 1 0 0 3498472 315836 3819540 0 0 0 1 2 0 0 0 100 0 2表示每个两秒采集一次服务器状态,1表示只采集一次。 实际上,在应用过程中,我们会在一段时间内一直监控,不想监控直接结束vmstat就行了,例如: root@ubuntu:~# vmstat 2 procs -----------memory---------- --

HPA

时间秒杀一切 提交于 2020-03-02 07:37:21
HPA HPA的全称为Horizontal Pod Autoscaling,它可以根据当前pod资源的使用率(如CPU、磁盘、内存等),进行副本数的动态的扩容与缩容,以便减轻各个pod的压力。当pod负载达到一定的阈值后,会根据扩缩容的策略生成更多新的pod来分担压力,当pod的使用比较空闲时,在稳定空闲一段时间后,还会自动减少pod的副本数量 前提条件:系统应该能够获取当前Pod的资源使用情况(意思是可以执行 kubectl top pod命令,并且能够得到反馈信息) heapster:这个组件之前是集成在k8s集群的,不过在1.12版本之后就被移除了。如果还想使用此功能,应该部署metricServer这个k8s集群资源使用情况的聚合器 要是想实现自动扩容缩容的功能,还需要部署heapster服务,而这个服务集成在Prometheus的MetricServer服务中,也就是说需要部署Prometheus服务,但是我们也可以直接部署heapster服务 实现Pod的扩容与缩容示例 因为heapster集成在MetricServer服务中,所以首先部署这个服务 1、首先安装MerticServer服务,从Github上克隆项目 [ root@master ~ ] # git clone https://github.com/kubernetes-incubator/metrics