[转帖]进程 线程和 协程

作者:ScratchLab链接:https://www.zhihu.com/question/308641794/answer/2867920715来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 线程有两种实现方式:内核态线程和用户态线程。早期,内核态线程由于概念清晰

[转帖]协程切换和线程切换

先说结论:协程切换比线程切换快主要有两点: (1)协程切换完全在用户空间进行,线程切换涉及特权模式切换,需要在内核空间完成;(2)协程切换相比线程切换做的事情更少。 协程切换只涉及基本的CPU上下文切换,所谓的 CPU 上下文,就是一堆寄存器,里面保存了 CPU运行任务所需要的信息:从哪里开始运行(

[转帖]Intel PAUSE指令变化如何影响MySQL的性能

https://zhuanlan.zhihu.com/p/581200704 导读 x86、arm指令都很多,无论是应用程序员还是数据库内核研发大多时候都不需要对这些指令深入理解,但是 Pause 指令和数据库操作太紧密了,本文通过一次非常有趣的性能优化来引入对 Pause 指令的理解,期望可以事半

[转帖]上下文切换的代价

https://plantegg.github.io/2022/06/05/%E4%B8%8A%E4%B8%8B%E6%96%87%E5%88%87%E6%8D%A2%E5%BC%80%E9%94%80/ 概念 进程切换、软中断、内核态用户态切换、CPU超线程切换 内核态用户态切换:还是在一个线程中

[转帖] Linux命令拾遗-查看系统信息

https://www.cnblogs.com/codelogs/p/16060714.html 简介# 作为一名程序员,有时需要关注自己的进程运行在什么样的软硬件环境里,比如几核cpu、固态硬盘还是机械硬盘、内核版本多少、Centos还是Ubuntu? 查看硬件信息# Linux里面提供了一系列命

[转帖]SystemStap、BCC、bpftrace

https://plantegg.github.io/2019/09/16/SystemStap/ Linux 4.4+ 支持 eBPF。基于 eBPF 可以将任何内核函数调用转换成可带任何 数据的用户空间事件。bcc 作为一个更上层的工具使这个过程更加方便。内核探测 代码用 C 写,数据处理代码用

iptables 命令学习

iptables 命令学习 摘要 Linux 早起版本使用netfilter进行数据包过滤. 最新的版本开始改用 ebpf的方式进行内核编程式的包过滤. netfilter 可以理解为内核态的一个处理机制 iptables 是在用户态进行管理netfilter配置的工具. 也就可以理解为: ipta

[转帖]overcommit_memory、overcommit_ratio、CommitLimit、Committed_AS概念

overcommit_memory、overcommit_ratio、CommitLimit、Committed_AS概念 overcommit_memory是一个内核对内存分配的一种策略。 overcommit_memory取值有三种分别为0, 1, 2。 overcommit_memory=0,

[转帖]Linux:页表中PGD、PUD、PMD、TLB等概念介绍

1、PGD: Page Global Directory Linux系统中每个进程对应用户空间的pgd是不一样的,但是linux内核 的pgd是一样的。当创建一个新的进程时,都要为新进程创建一个新的页面目录PGD,并从内核的页面目录swapper_pg_dir中复制内核区间页面目录项至新建进程页面目

[转帖]服务器稳定性测试-LTP压力测试方法及工具下载

简介 LTP(LinuxTest Project)是SGI、IBM、OSDL和Bull合作的项目,目的是为开源社区提供一个测试套件,用来验证Linux系统可靠性、健壮性和稳定性。LTP测试套件是测试Linux内核和内核相关特性的工具的集合。 该工具的目的是通过把测试自动化引入到Linux内核测试,提

[转帖]高并发系统中的尾延迟Tail Latency

开发和运维高并发系统的工程师可能都有过类似经验,明明系统已经调优完毕,该异步的异步,该减少互斥的地方引入无锁,该减少IO的地方更换引擎或者硬件,该调节内核的调节相应参数,然而,如果在系统中引入实时监控,总会有少量响应的延迟高于均值,我们把这些响应称为尾延迟(Tail Latency)。对于大规模分布

[转帖]linux性能优化-CPU利用率

参数说明 /proc/stat提供系统的CPU和任务统计信息。user(us): 用户态CPU时间,不包括下面的nice时间,但包括了guest时间。nice(ni): 代表低优先级用户态CPU时间。system(sys): 内核态CPU时间。idle(id): 空闲时间,它不包括等待I/O的时间。

[转帖]Linux性能优化(十五)——CPU绑定

一、孤立CPU 1、孤立CPU简介 针对CPU密集型的任务,CPU负载较高,推荐设置CPU Affinity,以提高任务执行效率,避免CPU进行上下文切换,提高CPU Cache命中率。 默认情况下,Linux内核调度器可以使用任意CPU核心,如果特定任务(进程/线程)需要独占一个CPU核心并且不想

[转帖]Linux磁盘I/O(二):使用vm.dirty_ratio和vm.dirty_background_ratio优化磁盘性能

文件缓存是一项重要的性能改进,在大多数情况下,读缓存在绝大多数情况下是有益无害的(程序可以直接从RAM中读取数据)。写缓存比较复杂,Linux内核将磁盘写入缓存,过段时间再异步将它们刷新到磁盘。这对加速磁盘I/O有很好的效果,但是当数据未写入磁盘时,丢失数据的可能性会增加。 当然,也存在缓存被写爆的

[转帖]Linux中的Page cache和Buffer cache详解

1、内存情况 在讲解Linux内存管理时已经提到,当你在Linux下频繁存取文件后,即使系统上没有运行许多程序,也会占用大量的物理内存。这是因为当你读写文件的时候,Linux内核为了提高读写的性能和速度,会将文件在内存中进行缓存,这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结

[转帖]超线程 Smt 究竟可以快多少?

https://www.51cto.com/article/686171.html 刚才我们关闭SMT是把CPU10-CPU19全关了,只留下每对里面的1个CPU,也就是留下了CPU0-CPU9。 默认情况下是Intel I9,10核,每个核2个threads,共20个CPUs: 下面编译内核: 需

[转帖]Linux下的I/O复用与epoll详解

https://blog.csdn.net/weixin_39094034/article/details/110393127 前言 I/O多路复用有很多种实现。在linux上,2.4内核前主要是select和poll,自Linux 2.6内核正式引入epoll以来,epoll已经成为了目前实现高性

[转帖] Strace的介绍与使用

https://www.cnblogs.com/skandbug/p/16264609.html Strace简介 strace命令是一个集诊断、调试、统计于一体的工具,常用来跟踪进程执行时的系统调用和所接收的信号,我们可以用它来监控用户空间进程和内核的交互。如对应用程序的系统调用、信号传递与进程状

[转帖] Linux命令拾遗-查看系统信息

https://www.cnblogs.com/codelogs/p/16060714.html 简介# 作为一名程序员,有时需要关注自己的进程运行在什么样的软硬件环境里,比如几核cpu、固态硬盘还是机械硬盘、内核版本多少、Centos还是Ubuntu? 查看硬件信息# Linux里面提供了一系列命

[转帖]/proc文件简介

https://www.jianshu.com/p/2610241770be 简介 /proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过 proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如