• cpu相关概念


    1.cpu使用率跟负载之间有什么关系

    cpu使用率:程序在运行期间实时占用cpu的百分比

    负载:正在调用cpu的进程+正在等待io的进程之和

    理论情况是cup使用率越高,负载就越高。一般是一个1个cpu,1个负载。负载安全为cpu颗粒数的0.7-0.8倍。

    (1)cpu使用率高,也会出现负载低的情况:

    当程序进行复杂的运算,但是只有一个进程时,cpu使用率就回很高,但是负载低。

    (2)cup使用率低,负载高情况:

    当系统有大量的io读写出现等待时,消耗的cpu使用率少,但是负载高

    2.cup上下文切换和中断

    (1)cup上下文切换

    每个进程都会分到CPU的时间片来运 行,当一个进程用完时间片或者被更高优先级的进程抢占后,它会备份到CPU的运行队列中,同时其他进程在CPU上运行。这个进程切换的过程被称作上下文切 换。过多的上下文切换会造成系统很大的开销。

    导致上下文切换的原因有:

    1、当前任务的时间片用完之后,系统CPU正常调度下一个任务;进程切换会产生cpu上下文切换
    2、当前任务碰到IO阻塞,调度线程将挂起此任务,继续下一个任务;
    3、多个任务抢占锁资源,当前任务没有抢到,被调度器挂起,继续下一个任务;
    4、用户代码挂起当前任务,让出CPU时间;
    5、硬件中断

    (2)cup中断

    产生上下文切换时,进入运行队列的进程没执行完,不能连续执行时就叫中断

    3.当启动程序时,如果程序读写磁盘,读写日志,那么程序消耗的是系统cup(sys%),因为io的读写时,系统调用内核,所有消耗的系统的cpu

    4.物理内存和虚拟内存的区别

    虚拟内存是磁盘开辟出来当做物理内存使用,当物理内存不足时,系统使用虚拟内存时特别慢

  • 相关阅读:
    mock中测试private方法,不是mock
    PHP检测每一段代码执行时间
    Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script.
    php返回HTTP状态码
    PHP获取今天、昨天、明天的日期
    memcache及其telnet命令使用详解
    PHP的json_encode中文被转码的问题
    PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
    php pack()函数详解与示例
    socket编程原理
  • 原文地址:https://www.cnblogs.com/zzzao/p/9207746.html
Copyright © 2020-2023  润新知