cpu内存和磁盘

cpu,内存和磁盘的关系:cpu取数据时,cpu发出指令先去内存找,内存找不到再去磁盘找,找到后从磁盘读到内存然后加载到cpu。cpu是执行任务,内存和磁盘是存储的。他们三个是相互制约相互依赖。所以有瓶颈时需要综合考虑。

例如,cpu很高可能是内存导致的,像垃圾回收,内存不足时需要消耗cpu做垃圾回收。

运行队列:一核cpu在同一时刻只能处理一个任务。例如来了一个线程,处于准备运行状态,cpu把它取出来执行。如果来了多个可运行状态的线程,这一个核的cpu只能执行一个,其他需要去排队,这就形成一个队列。排队的线程越多对cpu的压力越大。可运行状态的线程在排队时在不断抢夺cpu资源。

在不同工具里运行队列名字不一样:top里load average 就是队列数,三个时间段的平均值。vmstat里r列是队列数。spotlight里是queue length 。

context switches上下文切换:cpu处理排队的线程是在不断的切换的,例如执行第一个线程一分钟,然后切换到第二个线程二分钟,这样不断切换中,让大家感觉到cpu都在处理所有线程。

interrupts中断:就是cpu正在处理某个线程时被打断,就是优先级更高。中断一般都是硬件引起的,比如鼠标和键盘,优先级最高。

在vmstat中in是中断,cs是上下文切换。

cpu利用率:在windows中有个线程是sysrem idel process,就是cpu空闲利用率,这个越高就是cpu越闲。cpu利用率就是在一小时内有50分钟在处理这个线程,利用率就是50/60。在多核处理器中我们会看到多个线程都是很高的利用率,是因为多核都在处理。

vmstat中id就是idel空闲。越大cpu越空闲。

压测时cpu很闲也有问题。说明cpu压不上去

vmstat中us是用户态cpu,sy是内核态cpu,上下文切换多就是sy高。基于网络环境下,网络环境有io引起中断,需要消耗sy,所以us:sy最好是7:3。

vmstat  中的id 是真空闲 , wa 是等待io的空闲就是一直等待io读写。

原文地址:http://blog.51cto.com/13693838/2113830

时间: 2024-10-12 08:00:14

cpu内存和磁盘的相关文章

十六.监控系统cpu.内存,磁盘等,自动报警,发送邮件

发送邮箱小工具,将它放在#/usr/bin/mail  chmod +x /usr/bin/mail #!/usr/bin/python #-*- coding: UTF-8 -*- import sys import smtplib import email.mime.multipart import email.mime.text server = 'smtp.163.com' port = '25' def sendmail(server,port,user,pwd,msg): smtp

VPS性能测试:CPU内存,硬盘IO读写,带宽速度,UnixBench和压力测试

现在便宜的VPS主机越来越多了,一些美国的VPS主机甚至给出1美元一月的VPS,堪比虚拟主机还要便宜,巨大的价格优势吸引不少人购买和使用,而近些年来国内的主机商也开始意识到便宜的VPS对草根站长的诱惑力,纷纷推出了低价VPS,其中突出的代表就是阿里云. 所谓“一分钱一分货”,把VPS当成虚拟主机来卖的如果不是做慈善事业就是超售严重,买回来的VPS到底值不值这个价钱,我们一般需要对VPS主机进行一番性能测试,涉及的项目主要有CPU内存,硬盘IO读写,带宽速度,UnixBench和压力测试等等. 本

【好书摘要】性能优化中CPU、内存、磁盘IO、网络性能的依赖

系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监测,而且是一个长期和持续的过程,不 是说现在优化了,测试了,以后就可以一劳永逸了,也不是说书本上的优化就适合眼下正在运行的系统,不同的系统.不同的硬件.不同的应用优化的重点也不同. 优化的方法也不同.优化的参数也不同.性能监测是系统优化过程中重要的一环,如果没有监测.不清楚性能瓶颈在哪里,怎么优化呢?所以找到性能 瓶颈是性能监测的目的,也是系统优化的关键.系统由若干子系统构成,通常修改一个子系

CPU,内存,磁盘,指令以及它们之间的关系

众所周知计算机的组成是由控制器.运算器.存储器.输入.输出设备五部分构成,而其中CPU就是由控制器.运算器.寄存器和时钟四部分构成,磁盘和内存就属于存储设备. CPU指令主要有以下四个: 1.加载:把一个字节或一个字从内存中赋值到寄存器,覆盖原来寄存器的内容 2.存储:把一个字节或一个字从寄存器复制到内存中的某个位置,覆盖原来内存上这个位置的内容 3.操作:将两个寄存器的内容赋值到ALU,ALU对这两个字进行算术操作,将结果存储在某个寄存器中,以覆盖寄存器中原来的值 4.跳转:从指令本身抽取一个

linux系统CPU,内存,磁盘,网络流量监控脚本

前序 1,#cat /proc/stat/ 信息包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累积到当前时刻 2,#vmstat –s 或者#vmstat 虚拟内存统计 3, #cat /proc/loadavg 从系统启动开始到当前累积时刻 4, #uptime 系统运行多长时间 5, #mpstat CPU的一些统计信息 6, # 一,linux系统CPU,内存,磁盘,网络流量监控脚本 [作者:佚名来源:不详时间:2010-7-6 [我来说两句大中小] cme.sh网络流量监

linux性能问题(CPU,内存,磁盘I/O,网络)

一. CPU性能评估 1.vmstat [-V] [-n] [depay [count]] -V : 打印出版本信息,可选参数 -n : 在周期性循环输出时,头部信息仅显示一次 delay : 两次输出之间的时间间隔 count : 按照delay指定的时间间隔统计的次数.默认是1 如:vmstat 1 3 [email protected]:~$ vmstat 1 3 procs -----------memory---------- ---swap-- -----io---- -system

Linux按照CPU、内存、磁盘IO、网络性能监测

目录[-] Linux性能监测:CPU篇 Linux性能监测:内存篇 Linux性能监测:磁盘IO篇 Linux性能监测:网络篇 系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监测,而且是一个长期和持续的过程,不 是说现在优化了,测试了,以后就可以一劳永逸了,也不是说书本上的优化就适合眼下正在运行的系统,不同的系统.不同的硬件.不同的应用优化的重点也不同. 优化的方法也不同.优化的参数也不同.性能监测是系统优化过程中重要的一环,如果没有监测

java获取cpu,内存,磁盘等信息

原文:java获取cpu,内存,磁盘等信息 源代码下载地址:http://www.zuidaima.com/share/1550463331306496.htm package com.zuidaima.util; import java.io.File; import java.io.InputStreamReader; import java.io.LineNumberReader; import java.util.ArrayList; import java.util.List; imp

Linux按照CPU、内存、磁盘IO、网络性能监测【转载】

本文转载地址:https://my.oschina.net/chape/blog/159640 Linux按照CPU.内存.磁盘IO.网络性能监测 系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监测,而且是一个长期和持续的过程,不 是说现在优化了,测试了,以后就可以一劳永逸了,也不是说书本上的优化就适合眼下正在运行的系统,不同的系统.不同的硬件.不同的应用优化的重点也不同. 优化的方法也不同.优化的参数也不同.性能监测是系统优化过程中重要的