随笔分类 -  Linux性能优化

摘要:磁盘性能指标 磁盘性能的衡量标准,有五个:使用率、饱和度、IOPS、吞吐量、响应时间 使用率是指磁盘处理I/O的时间百分比 过高的使用率(比如超过 80%),通常意味着磁盘I/O存在性能瓶颈 饱和度,是指磁盘处理I/O的繁忙程度 过高的饱和度,意味着磁盘存在严重的性能瓶颈 当饱和度为100% 时,磁 阅读全文
posted @ 2021-12-17 11:44 李成果 阅读(170) 评论(0) 推荐(0) 编辑
摘要:磁盘 按照存储介质分类:机械磁盘和固态磁盘 机械磁盘,也称为硬盘驱动器,通常缩写为HDD 机械磁盘主要由盘片和读写磁头组成,数据就存储在盘片的环状磁道中 在读写数据前,需要移动读写磁头,定位到数据所在的磁道,然后才能访问数据 连续I/O,请求刚好连续,那就不需要磁道寻址,可以获得最佳性能 随机I/O 阅读全文
posted @ 2021-12-17 10:42 李成果 阅读(185) 评论(0) 推荐(0) 编辑
摘要:前言 同CPU、内存一样,磁盘和文件系统的管理,也是操作系统最核心的功能 磁盘为系统提供了最基本的持久化存储 文件系统则在磁盘的基础上,提供了一个用来管理文件的树状结构 索引节点和目录项 文件系统,本身是对存储设备上的文件进行组织管理的机制 组织方式不同,就会形成不同的文件系统 在Linux中一切皆 阅读全文
posted @ 2021-12-15 17:02 李成果 阅读(681) 评论(0) 推荐(0) 编辑
摘要:问题1: 内存回收与OOM 怎么理解LRU内存回收? 一旦系统发现内存紧张,系统会通过三种方式回收内存 基于 LRU(Least Recently Used)算法,回收缓存 基于Swap机制,回收不常访问的匿名页 基于OOM(Out of Memory)机制,杀掉占用大量内存的进程 缓存回收和Swa 阅读全文
posted @ 2021-12-14 16:32 李成果 阅读(139) 评论(0) 推荐(0) 编辑
摘要:内存性能指标 系统内存指标,比如已用内存、剩余内存、共享内存、可用内存、缓存和缓冲区的用量等 已用内存和剩余内存很容易理解,就是已经使用和还未使用的内存 共享内存是通过tmpfs实现的,所以它的大小也就是tmpfs使用的内存大小 tmpfs其实也是一种特殊的缓存 可用内存是新进程可以使用的最大内存, 阅读全文
posted @ 2021-12-14 15:58 李成果 阅读(186) 评论(0) 推荐(0) 编辑
摘要:前言 在内存资源紧张时,Linux通过直接内存回收和定期扫描的方式,来释放文件页和匿名页,以便把内存分配给更需要的进程使用 文件页的回收比较容易理解,直接清空缓存,或者把脏数据写回磁盘后,再释放缓存就可以了 匿名页则需要通过Swap换出到磁盘中,这样在下次访问的时候,再次从磁盘换入到内存中就可以了 阅读全文
posted @ 2021-12-14 14:30 李成果 阅读(121) 评论(0) 推荐(0) 编辑
摘要:为什么要有swap 当发生了内存泄漏时,或者运行了大内存的应用程序,导致系统的内存资源紧张时,系统又会如何应对呢? OOM杀死进程 内存回收 OOM 杀死进程 内存资源紧张导致的OOM(Out Of Memory),指的是系统杀死占用大量内存的进程,释放这些内存,再分配给其他更需要的进程 内存回收 阅读全文
posted @ 2021-12-10 16:32 李成果 阅读(146) 评论(0) 推荐(0) 编辑
摘要:内存的分配和回收 用户空间内存包括多个不同的内存段,比如只读段、数据段、堆、栈以及文件映射段等。 这些内存段正是应用程序使用内存的基本方式。 举个例子,在程序中定义了一个局部变量,比如一个整数数组int data[64] ,就定义了一个可以存储64个整数的内存段。 由于这是一个局部变量,它会从内存空 阅读全文
posted @ 2021-12-09 15:40 李成果 阅读(278) 评论(0) 推荐(0) 编辑
摘要:缓存命中率 缓存的命中率:所谓缓存命中率,是指直接通过缓存获取数据的请求次数,占所有数据请求次数的百分比 命中率越高,表示使用缓存带来的收益越高,应用程序的性能也就越好 实际上,缓存是现在所有高并发系统必需的核心模块,主要作用就是把经常访问的数据(也就是热点数据),提前读入到内存中 下次访问时就可以 阅读全文
posted @ 2021-12-03 17:27 李成果 阅读(125) 评论(0) 推荐(0) 编辑
摘要:free数据的来源 # 注意不同版本的free输出可能会有所不同 # centos7版本 [root@local_sa_192-168-1-6 ~]# free total used free shared buff/cache available Mem: 8169348 263524 68753 阅读全文
posted @ 2021-12-01 17:37 李成果 阅读(484) 评论(0) 推荐(0) 编辑
摘要:内存映射 同CPU管理一样,内存管理也是操作系统最核心的功能之一,内存主要用来存储系统和应用程序的指令、数据、缓存等。 内存其实指的是物理内存。 物理内存也称为主存,大多数计算机用的主存都是动态随机访问内存(DRAM),只有内核才可以直接访问物理内存。 那么,进程要访问内存时,该怎么办呢? Linu 阅读全文
posted @ 2021-11-30 17:05 李成果 阅读(131) 评论(0) 推荐(0) 编辑
摘要:欠着。 阅读全文
posted @ 2021-11-30 14:10 李成果 阅读(66) 评论(0) 推荐(0) 编辑
摘要:问题1:性能工具版本太低,导致指标不全 [02-基础篇:到底应该怎么理解“平均负载”] pidstat命令没有%wait列 >>>: 使用CentOS的普遍碰到的问题 pidstat输出里有一个%wait指标,代表进程等待CPU的时间百分比 这是systat 11.5.5版本才引入的新指标,旧版本没 阅读全文
posted @ 2021-11-19 16:20 李成果 阅读(196) 评论(0) 推荐(0) 编辑
摘要:性能优化方法论 通过各种性能分析方法,终于找到了引发性能问题的瓶颈后,是不是立刻就要开始优化了呢? 动手之前,可以先看看下面这三个问题 1.既然要做性能优化,那要怎么判断它是不是有效呢?特别是优化后,到底能提升多少性能呢? 2.性能问题通常不是独立的,如果有多个性能问题同时发生,应该先优化哪一个呢? 阅读全文
posted @ 2021-11-19 11:37 李成果 阅读(882) 评论(0) 推荐(0) 编辑
摘要:CPU性能指标 cpu常用性能指标 CPU使用率 用户CPU使用率 用户CPU使用率,包括用户态CPU使用率(user)和低优先级用户态CPU使用率(nice) 表示CPU在用户态运行的时间百分比 用户CPU使用率高,通常说明有应用程序比较繁忙 系统CPU使用率 系统CPU使用率,表示CPU在内核态 阅读全文
posted @ 2021-11-19 10:34 李成果 阅读(430) 评论(0) 推荐(0) 编辑
摘要:中断 中断是一种异步的事件处理机制,用来提高系统的并发处理能力 中断事件发生,会触发执行中断处理程序,而中断处理程序被分为上半部和下半部这两个部分 1.上半部对应硬中断,用来快速处理中断 2.下半部对应软中断,用来异步处理上半部未完成的工作 Linux中的软中断包括网络收发、定时、调度、RCU 锁等 阅读全文
posted @ 2021-11-17 16:59 李成果 阅读(1126) 评论(0) 推荐(0) 编辑
摘要:进程的不可中断状态是系统的一种保护机制,可以保证硬件的交互过程不被意外打断 所以,短时间的不可中断状态是很正常的 当进程长时间都处于不可中断状态时,就得当心了 可以使用dstat、pidstat等工具,确认是不是磁盘I/O的问题,进而排查相关的进程和磁盘设备 除了iowait,软中断(softirq 阅读全文
posted @ 2021-11-17 15:32 李成果 阅读(468) 评论(0) 推荐(0) 编辑
摘要:案例 环境准备 # 先删除上次启动的案例 [root@local_sa_192-168-1-6 ~]# docker rm -f app # 重新运行案例 [root@local_sa_192-168-1-6 ~]# docker run --privileged --name=app -itd f 阅读全文
posted @ 2021-11-16 15:50 李成果 阅读(247) 评论(0) 推荐(0) 编辑
摘要:引子 当碰到无法解释的CPU使用率问题时,先要检查一下是不是短时应用在捣鬼 短时应用的运行时间比较短,很难在top或者ps这类展示系统概要和进程快照的工具中发现, 需要使用记录事件的工具来配合诊断,比如execsnoop或者perf top CPU使用率的类型,除了用户CPU之外 它还包括系统CPU 阅读全文
posted @ 2021-11-15 15:55 李成果 阅读(323) 评论(0) 推荐(0) 编辑
摘要:引子 上一节讲了CPU使用率是什么,并通过一个案例使用top、vmstat、pidstat等工具 排查高CPU使用率的进程,然后再使用perf top工具定位应用内部函数的问题 似乎感觉高CPU使用率的问题,还是挺容易排查的,那是不是所有CPU使用率高的问题,都可以这么分析呢? 答案是否定的,系统的 阅读全文
posted @ 2021-11-11 11:40 李成果 阅读(625) 评论(0) 推荐(0) 编辑