文章目录
- 性能优化图
- CPU
- 进程和cpu原理
- 性能指标
性能优化图
CPU
进程和cpu原理
-
进程与线程:
- 进程是程序的执行实例,有自己的地址空间和系统资源。线程是进程内的执行单元,共享进程的资源。
- 在多核系统中,使用多线程可以更好地利用多核处理器的性能。
-
CPU调度:
- Linux使用调度器来确定哪个进程或线程在给定时间片内执行。
- 调度策略可以通过调整进程的优先级、使用不同的调度算法或使用cgroups来限制资源来进行优化。
-
中断系统:
- 中断是硬件或软件事件的异步通知,可导致CPU切换执行不同的任务。
- 通过合理管理中断处理程序,可以减少中断延迟,提高系统响应性。
-
CPU缓存:
- 缓存是提高计算机性能的关键因素,包括L1、L2和L3缓存。
- 优化内存访问模式、数据结构布局,以及避免缓存伪共享等方式,可以提高缓存的命中率。
-
NUMA(非一致性存储访问):
- NUMA是一种多处理器体系结构,其中每个处理器连接到共享内存的一个区域。
- 通过合理分配任务、数据,以及使用NUMA感知的调度策略,可以减少内存访问的延迟。
性能指标
-
平均负载(Load Average):
- 平均负载是系统中活跃进程数的平均值,通常包括1分钟、5分钟和15分钟的负载。
- 负载高可能表示系统过载,需要进一步分析具体原因。
-
CPU缓存命中率:
- 缓存命中率表示从缓存中成功获取数据的比率。高缓存命中率通常是良好性能的指标。
- 包括L1、L2和L3缓存,优化算法和数据结构可提高缓存命中率。
-
CPU使用率中的各项指标:
- 用户CPU(User CPU): 应用程序代码运行所占用的CPU时间。
- 系统CPU(System CPU): 操作系统内核代码运行所占用的CPU时间。
- IOWAIT: CPU等待I/O操作完成的时间。
- 软中断: 由软件触发的中断,例如网络数据包到达。
- 硬中断: 由硬件设备触发的中断,例如磁盘I/O完成。
- 窃取CPU(Steal CPU): 在虚拟化环境中,宿主系统从虚拟机中“窃取”走的CPU时间。
- 客户CPU(Guest CPU): 在虚拟化环境中,虚拟机使用的CPU时间。
-
上下文切换中的自愿和非自愿上下文切换:
- 自愿上下文切换: 进程主动释放CPU,通常因为等待资源。
- 非自愿上下文切换: 操作系统强制切换进程,通常因为时间片用尽或新进程的到来。