首页
云原生
docker
containerd
Kubernetes
Prometheus
基础知识
操作系统
计算机网络
Linux基础
基础设施
Nginx
Devops
gitlab
jenkins
Maven
Ansible
前端
日志监控
数据库
MySQL
Redis
Oracle
编程
shell
python
其他
hyperledger-fabric
系统安全
运维相关工具
友情链接
归档
关于
Gaoyufu 's blog
好好活就是有意义的事,有意义的事就是好好活
累计撰写
257
篇文章
累计创建
92
个标签
累计收到
6
条评论
栏目
首页
云原生
docker
containerd
Kubernetes
Prometheus
基础知识
操作系统
计算机网络
Linux基础
基础设施
Nginx
Devops
gitlab
jenkins
Maven
Ansible
前端
日志监控
数据库
MySQL
Redis
Oracle
编程
shell
python
其他
hyperledger-fabric
系统安全
运维相关工具
友情链接
归档
关于
目 录
CONTENT
cpu-Gaoyufu 's blog
以下是
cpu
相关的文章
2023-02-28
CPU系统调用
非常详细的文章,对于系统调用和其工作原理做了深入的解析,并且给出了使用SystemTap来追踪系统调用的实用示例。这对于理解Linux内核和用户空间程序之间的交互非常有帮助。 在你的文章结尾提到的参考资料中,提到了两篇重要的参考资料,一篇是“Linux 系统调用权威指南(2016)”,另一篇是“LINUX SYSTEM CALL TABLE FOR X86 64”。这两篇资料对于理解系统调用的细节和实现非常有帮助。特别是“Linux 系统调用权威指南(2016)”这篇翻译文章,对于理解系统调用的基本概念、系统调用的生命周期以及如何在Linux系统中实现系统调用等提供了详细的解释。而“LINUX SYSTEM CALL TABLE FOR X86 64”则提供了详细的系统调用表,对于理解具体系统调用的参数和功能非常有帮助。 总的来说,你的文章和这些参考资料一起阅读,可以更好地理解Linux系统调用的工作原理和使用方法。这篇文章非常适合作为学习SystemTap和系统调用的入门教程。
2023-02-28
69
0
0
基础知识
操作系统
2023-02-28
CPU进程调度
摘要: 该文主要介绍了进程调度的概念、目的以及相关的调度队列。文章指出多道程序设计的目的是最大化CPU利用率并允许用户与程序进行交互,为此需要使用进程调度选择一个可用进程到CPU上执行。文章详细描述了调度队列,包括作业队列、就绪队列和设备队列等,并介绍了Linux操作系统中的进程控制块。 文章接着讨论了调度程序及其作用,包括长期调度程序、短期调度程序和CPU调度程序。然后介绍了调度算法的性能衡量标准,主要包括周转时间、响应时间、截止时间保证、优先权、吞吐量、CPU利用率等。 文章重点介绍了六种调度算法,包括先来先服务(FCFS)、短作业优先(SJF)、最短剩余时间优先、高响应比优先、优先级调度和时间片轮转等,并详细解释了它们的原理、优缺点和应用场景。 最后,文章提及了多级反馈队列综合调度算法,这是一种结合多种调度算法优点的综合调度策略,对I/O型进程更友好。 总的来说,该文全面介绍了进程调度的相关知识,包括调度队列、调度程序、调度算法等,并对比了不同算法的优缺点,为读者提供了深入的理解和全面的视角。
2023-02-28
58
0
0
操作系统
基础知识
2023-02-27
CPU上下文切换
文章摘要: 本文主要解释了Linux系统中的CPU上下文以及CPU上下文切换的概念。CPU上下文包括CPU寄存器和程序计数器,是CPU在运行任何任务前必须的依赖环境。CPU上下文切换涉及到保存和加载任务的CPU上下文到这些寄存器和程序计数器,然后跳转到程序计数器所指的新位置运行新任务。根据任务类型,CPU上下文切换可以分为进程上下文切换、线程上下文切换和中断上下文切换。 进程上下文切换涉及到虚拟内存、栈、全局变量等用户空间资源和内核空间状态的保存和恢复。系统调用和系统进程上下文切换有所不同,系统调用只会涉及到特权模式切换和用户态到内核态的转变。进程上下文切换可能会导致性能问题,因为每次切换都需要消耗CPU时间并刷新TLB等。常见的进程上下文切换场景包括时间片耗尽、资源不足、主动挂起以及高优先级进程运行等。线程上下文切换涉及到线程私有数据和寄存器等资源的保存和恢复。中断上下文切换主要处理硬件中断,不涉及用户态资源的保存和恢复,主要包括CPU寄存器、内核堆栈等内核态资源。中断处理拥有较高的优先级,与进程上下文切换可以同时发生但较少发生。过多的中断上下文切换也会影响系统性能,需要进行排查和优化。
2023-02-27
66
0
0
操作系统
基础知识
2023-02-27
CPU使用率
这是一篇关于CPU使用率的摘要总结: CPU使用率是单位时间内CPU使用情况的统计,以百分比表示。Linux作为一个多任务操作系统,通过时间片分配的方式让各个任务轮流使用CPU。为了维护CPU时间,Linux通过节拍率触发时间中断,进行使用率统计。 CPU使用率的相关名词包括用户态CPU时间、内核态CPU时间、空闲时间、等待I/O的时间等,它们分别对应不同的场景下的CPU时间。 查看CPU使用率可以通过读取/proc/stat和/proc/[pid]/stat这两个文件,再按照公式计算。常用的工具有top、ps和pidstat等。 当CPU使用率过高时,可以利用性能分析工具如GDB、perf等来进行排查。perf是Linux内置的性能分析工具,以性能事件采样为基础,可以分析系统和应用程序的性能问题。通过perf record采集数据,再用perf report解析展示。 用户CPU和Nice CPU高说明用户态进程占用了较多CPU,应该排查进程性能问题。系统CPU高说明内核态占用了较多CPU,应该排查内核线程或系统调用性能问题。I/O等待CPU高说明等待I/O的时间较长,应排查系统存储I/O问题。软中断和硬中断高说明中断处理程序占用了较多CPU,应排查内核中断服务程序。 总的来说,可以通过top、pidstat等工具确认引发CPU性能问题的来源,再使用perf等工具排查出引起性能问题的具体函数。
2023-02-27
74
0
0
操作系统
基础知识
2023-02-27
CPU运行级别
摘要: 该文主要介绍了CPU的四种状态与操作系统的两种状态(用户态和内核态)的关系,详细阐述了操作系统在用户态和内核态之间的切换情况,包括系统调用、硬中断、软中断和异常等情况。同时,文章还讨论了用户代码和操作系统代码在CPU上的运行方式,以及现代计算机CPU如何加载操作系统代码。文章指出,操作系统和用户程序都是基于CPU权限制造的概念,操作系统的代码放在磁盘的指定位置,从而获得系统的控制权。在现代计算机中,可能存在一个MCU先行获得系统的控制权,然后再启动主CPU和其他CPU。
2023-02-27
56
0
0
基础知识
操作系统
2023-02-27
CPU运行队列
摘要: Linux系统中,进程状态主要为运行和阻塞,CPU维持一个运行队列。调度器从运行状态的进程列表中选择进程运行。运行状态进程不一定使用CPU,同一时刻只有一个任务使用CPU资源。运行队列长度代表系统压力,理想情况下应与内核数量匹配,不超过内核数量的三倍。系统负载平均值表示运行队列大小,可通过vmstat和top命令查看。对于每个CPU,运行队列大小不应超过内核数量的两倍。CPU时间分配中,User Time和System Time应有合理比例,us和sy值过大可能需要进一步分析软硬件因素。Idle值过低可能意味着CPU资源未充分利用。
2023-02-27
92
0
0
基础知识
操作系统