
Linux性能优化
文章平均质量分 83
小辣鸡~
这个作者很懒,什么都没留下…
展开
-
Linux网络性能优化
网络栈示意图网卡是发送和接收网络包的基本设备。在系统启动过程中,网卡通过内核中的网卡驱动程序注册到系统中的,而在网络收发过程中,内核通过中断跟网卡进行交互。网卡的硬中断只处理最核心的网卡数据的读取或发送。而网络中大部分逻辑都放在了软中断中进行处理。网络包的接收流程当一个网络包到达网卡后,网卡通过DMA方式把这个数据包放入到收包队列中。然后通过硬中断告诉中断处理程序已经收到了网络包了,接着中断处理程序会为网络帧分配内核数据结构(sk_buff),并将其拷贝到sk_buff中;然后再通过软中断通知内核原创 2022-01-17 07:49:33 · 1860 阅读 · 0 评论 -
Linux文件系统
linux中一切皆文件,不仅普通的文件和目录。就连块设备、套接字、管道等都是通过统一的文件系统来管理的linux文件系统为每个文件都分配了两个数据结构:1.索引节点 2.目录项它们主要用来记录文件的元信息和目录结构...原创 2022-01-01 11:11:01 · 1197 阅读 · 0 评论 -
Linux内存
内存主要用来存储系统和应用程序的指令、数据、缓存等物理内存物理内存也被称为主存,大多数计算机用的主存都是动态随机访问内存(DRAM),只有内核才能直接访问物理内存进程如何访问内存?linux内核给每个进程都提供了一个独立的虚拟地址空间,并且这个地址空间是连续的。这样,进程就可以很方便的访问虚拟内存。虚拟地址空间内部有被分为用户空间和内核空间32位的系统内核空间占用1G,剩余的3G时用户空间64 位系统的内核空间和用户空间都是 128T,分别占据整个内存空间的最高和最低处,剩下的中间部分是未定原创 2021-12-28 22:46:05 · 1230 阅读 · 0 评论 -
软中断与硬中断
当iowait升高时,进程很可能因为得不到硬件的响应而长时间处于不可中断状态(D)。进程的状态划分:$ top PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND28961 root 20 0 43816 3148 4040 R 3.2 0.0 0:00.01 top 620 root 20 0 37280 33676 908 D 0.3 0.4 0:00原创 2021-12-26 11:23:07 · 1416 阅读 · 0 评论 -
cpu使用率
cpu使用率指标:通过cat /proc/stat | grep ^cpu查看:1.user:用户态cpu时间。注意:它不包含nice时间,但包含guest时间2.nice:代表低优先级用户态cpu时间,也就是进程的nice值被调整为1-19之间的cpu时间,值越大代表优先级越低3.system:内核态cpu时间4.idle:cpu空闲时间。⚠️注意:它不包含等待io的时间5.iowait:等待io的cpu时间6.irq:代表处理硬中断的cpu时间7.softirq:代表处理软中断的cpu时原创 2021-12-25 10:38:36 · 1657 阅读 · 0 评论 -
cpu上下文切换
上一节提到的等待cpu的进程也会导致平均负载升高是为什么呢?实际上是因为cpu上下文切换导致的,cpu分配时间片来执行每个任务,而在每个任务执行之前cpu需要知道从哪里加载又从哪里运行,也就是说需要系统帮它设置好cpu寄存器和程序计数器,也就是cpu的上下文保存的上下文是存储在系统内核中的,并在系统调度执行时再次加载进来而上文中的任务又是什么呢?实际上任务不单单包含进程和线程、硬件通过触发信号,会导致中断处理程序的调用,也是一种常见的任务,所以cpu上下文切换根据任务的不同分为:进程上下文切换、线程原创 2021-12-24 21:09:14 · 738 阅读 · 0 评论 -
理解平均负载
什么是平均负载?平均负载:单位时间内,系统处于可运行状态或者不可中断状态的平均进程数可运行状态是指正在等待cpu或者正在使用cpu的进程,也就是下图中处于R(Running或者Runnable)状态的线程不可中断进程则是内核中正处于关键流程中的进程,并且这些流程是不可以被打断的,例如最常见的就是等待硬件设备的io响应,也就是下图中处于D状态的进程,不可中断主要是为了保证数据的一致性即磁盘数据与进程数据的一致性平均负载的理想状态是等于cpu个数平均负载过高会有什么影响?平均负载过高会导致进程响应变原创 2021-12-23 22:27:01 · 991 阅读 · 0 评论