Linux性能优化
囚牢-峰子
这个作者很懒,什么都没留下…
展开
-
Linux下系统 I/O 性能分析的套路
如何快速分析定位 I/O 性能问题1. 文件系统 I/O性能指标首先,想到是存储空间的使用情况,包括容量、使用量、以及剩余空间等。我们通常也称这些为磁盘空间的用量,但是这只是文件系统向外展示的空间使用,而非在磁盘空间的真实用量,因为文件系统的元数据也会占用磁盘空间。而且,如果你配置了RAID,从文件系统看到的使用量跟实际磁盘的占用空间,也会因为RAID级别不同而不一样。除了数据本身的存...原创 2020-01-19 15:16:02 · 3747 阅读 · 1 评论 -
Linux文件系统、磁盘I/O是怎么工作的
同前面讲述的CPU、内存一样,文件系统和磁盘I/O,也是Linux操作系统最核心的功能。磁盘为系统提供了最基本的持久化存储。 文件系统则在磁盘基础上,提供了一个用来管理文件的树状结构。文件系统1. 索引节点和目录项Linux中的一切都由统一的文件系统来管理,包括普通的文件和目录,以及块设备、套接字、管道等。Linux文件系统为每个文件都分配了两个数据结构,索引节点(index no...原创 2020-01-13 18:23:07 · 2184 阅读 · 1 评论 -
Linux内存管理(text、rodata、data、bss、stack&heap)
近期在解决一个编译问题时,一直在考虑一个问题,那就是Linux下可执行程序执行时内存是什么状态,是依照什么方式分配内存并执行的。linux下内存管理是通过虚存管理的,在分配内存时并不是在物理内存开辟了一段空间,而是在使用时才分配的。并且是通过段页式管理。linux下内存分配是以页为单位的。而页是通过段管理。各个段之间是独立的,方便管理。linux程序执行时能够分为下面几个内存段:tex...转载 2020-01-08 18:19:08 · 1417 阅读 · 0 评论 -
“快、准、狠” 地找到系统内存瓶颈
1. 内存性能指标首先,最容易想到是系统内存的使用情况,比如已用内存、剩余内存、共享内存、可用内存、缓存和缓冲区的用量等。共享内存,通过tmpfs实现,它的大小就是tmpfs使用的内存大小,tmpfs也是一种特殊的缓存。、 可用内存是新进程可以使用的最大内存,包括剩余内存和可回收内存。 缓存,包括两部分:一部分是磁盘读取文件的页缓存,用来缓存磁盘读取的数据,可以加快以后再次访问速度;另...原创 2020-01-08 17:24:02 · 1232 阅读 · 1 评论 -
Linux系统的swap机制
1. swap 原理当系统发生内存泄露,或者运行了占用大量内存的进程,导致系统的内存资源紧张时,会导致两种后果,内存回收和OOM杀死进程。OOM这里就不赘述了,来看看内存回收,也就是系统释放掉可以回收的内存,比如前面讲过的buff/cache,就属于可回收内存。在内存管理中,它们就叫文件页。大部分文件页都可以被回收,以后有需要时再从磁盘读取就可以了,而那些被程序修改过且暂未被写入磁盘的数据...原创 2020-01-07 15:31:07 · 2839 阅读 · 2 评论 -
Linux内存管理的基本原理
1. 内存映射说到内存,这是我们买电脑时的重要考虑因素之一,现在的笔记本8GB内存已经很普遍了。这里说的8GB,其实是物理内存,也称主存,大多数计算机用的是动态随机访问内存(DRAM)。Linux下只有内核才可以访问物理内存,进程想要访问物理内存必须必须通过内核。Linux内核为每个进程提供了一个独立的虚拟地址空间,这个地址空间是连续的,它的内部又分为内核空间和用户空间。不同字长(也就是单个C...原创 2020-01-03 15:40:55 · 774 阅读 · 2 评论 -
【转】进程分配内存的两种方式--brk() 和mmap()(不涉及共享内存)
如何查看进程发生缺页中断的次数?用ps -o majflt,minflt -C program命令查看。majflt代表major fault,中文名叫大错误,minflt代表minor fault,中文名叫小错误。这两个数值表示一个进程自启动以来所发生的缺页中断的次数。发成缺页中断后,执行了那些操作?当一个进程发生缺页...转载 2020-01-02 16:08:45 · 402 阅读 · 0 评论 -
上下文切换的那些事儿
1. CPU上下文前面说过,多个进程竞争CPU会导致平均负载升高,可是这个时候进程并没有真正运行,真正作怪的其实是CPU上下文切换。Linux是一个多任务系统,支持大于CPU数量的任务同时运行,这里的同时运行并不是真正意义上的“同时”,而是由系统在很短时间内将CPU轮流分配给任务造成的错觉。在每个任务运行前,CPU都要知道从哪里加载,又从哪里开始运行,这就需要事先帮它设置好CPU寄存器和程...原创 2019-12-25 15:49:50 · 410 阅读 · 0 评论 -
如何快速定位CPU性能瓶颈 和 优化的几个思路
1. CPU性能指标前面几篇博客已经讲过CPU相关的知识点,这里先大概总结一下,总括CPU性能指标:CPU使用率:用户态CPU使用率(user)、低优先级用户态CPU使用率(nice)、系统CPU使用率、等待IO的CPU使用率(iowait)、软中断和硬中断的CPU使用率,还有在虚拟化环境中用到的窃取CPU使用率(steal)和客户CPU使用率(guest)。平均负载:理想情况下,平均...原创 2019-12-24 16:08:54 · 2181 阅读 · 0 评论 -
怎么理解Linux软中断?
1. 怎么去理解前面博客简单说过中断的含义,中断是系统用来响应硬件设备请求的一种机制,会打断进程的正常调度和运行,然后调用内核中的中断处理程序来响应硬件设备的请求。为什么要有中断?其实中断是一种异步的事件处理机制,可以提高系统的并发处理能力。由于中断处理程序会打断进程的运行,特别是还会临时关闭中断,会导致上一次中断处理程序完成以前,其他中断都不能响应,那么这种情况下中断也可能会丢失,...原创 2019-12-24 10:20:46 · 878 阅读 · 0 评论 -
详谈CPU使用率
前面两篇博客已经说到很多的关于CPU方面的内容,这篇将进一步详述CPU的使用率。先抛出两个问题,作为最熟悉的CPU指标,你知道CPU使用率是怎么计算的吗?再有,诸如,像top、ps之类的性能工具展示的%user、%nice、%system、%iowait、%steal等,他们之间的区别是什么?1. CPU使用率在上一篇讲了CPU时间被分成很多的有很短的时间片供调度器分配,为了维护CPU时间...原创 2019-12-18 18:14:18 · 836 阅读 · 0 评论 -
从平均负载角度谈Linux性能优化
1. 平均负载这里的平均负载,讲的是Linux的系统负载,可以通过命令 top 或者 uptime查看到。 Load average: 指的是过去的1分钟、5分钟、20分钟系统中,单位时间内,处于可运行状态或者不可中断状态的平均活跃进程数。...原创 2019-12-12 18:53:21 · 188 阅读 · 0 评论