张伯毅的专栏

人生就是一道证明题,证明我们的存在不是偶然....

Linux 性能优化笔记:优化性能问题的一般方法

从系统资源瓶颈和应用程序瓶颈,这两个角度来分析性能问题的根源。 从系统资源瓶颈的角度来说,USE 法是最为有效的方法,即从使用率、饱和度以及错误数这三个方面,来分析 CPU、内存、磁盘和文件系统 I/O、网络以及内核资源限制等各类软硬件资源。至于这些资源的分析方法,我也带你一起回顾了,咱们专栏前...

2019-06-05 18:24:44

阅读数 99

评论数 0

Linux 性能优化笔记:分析性能问题的一般步骤

应用程序的监控,可以分为指标监控和日志监控两大块。 指标监控,主要是对一定时间段内的性能指标进行测量,然后再通过时间序列的方式,进行处理、存储和告警。 而日志监控,则可以提供更详细的上下文信息,通常通过 ELK 技术栈,来进行收集、索引和图形化展示。 在跨多个不同应用的复杂业务...

2019-06-05 18:18:29

阅读数 51

评论数 0

Linux 性能优化笔记:应用监控

指标监控 跟系统监控一样,在构建应用程序的监控系统之前,首先也需要确定,到底需要监控哪些指标。特别是要清楚,有哪些指标可以用来快速确认应用程序的性能问题。 对系统资源的监控,USE 法简单有效,却不代表其适合应用程序的监控。举个例子,即使在 CPU 使用率很低的时候,也不能说明应用程序就没有性...

2019-06-05 18:12:36

阅读数 41

评论数 0

Linux 性能优化笔记:系统监控

USE 法 在开始监控系统之前,你肯定最想知道,怎么才能用简洁的方法,来描述系统资源的使用情况。你当然可以使用专栏中学到的各种性能工具,来分别收集各种资源的使用情况。不过不要忘记,每种资源的性能指标可都有很多,使用过多指标本身耗时耗力不说,也不容易为你建立起系统整体的运行状况。 在这里,我为你...

2019-06-05 18:06:40

阅读数 31

评论数 0

Linux 性能优化笔记:Linux 性能工具速查

CPU 性能工具 首先,从 CPU 的角度来说,主要的性能指标就是 CPU 的使用率、上下文切换以及 CPU Cache 的命中率等。下面这张图就列出了常见的 CPU 性能指标。 内存性能工具 接着我们来看内存方面。从内存的角度来说,主要的性能指标,就是系统内存的分配和使用、...

2019-06-05 18:00:17

阅读数 38

评论数 0

Linux 性能优化笔记:网络优化

确定优化目标 跟 CPU 和 I/O 方面的性能优化一样,优化前,我会先问问自己,网络性能优化的目标是什么?换句话说,我们观察到的网络性能指标,要达到多少才合适呢? 实际上,虽然网络性能优化的整体目标,是降低网络延迟(如 RTT)和提高吞吐量(如 BPS 和 PPS),但具体到不同应用中,每个...

2019-06-05 17:46:42

阅读数 81

评论数 0

Linux 性能优化笔记:网络性能评估

上一节,我们回顾了经典的 C10K 和 C1000K 问题。简单回顾一下,C10K 是指如何单机同时处理 1 万个请求(并发连接 1 万)的问题,而 C1000K 则是单机支持处理 100 万个请求(并发连接 100 万)的问题。 I/O 模型的优化,是解决 C10K 问题的最佳良方。Linux...

2019-06-05 12:22:51

阅读数 40

评论数 0

Linux 性能优化笔记:C10K 和 C1000K

C10K 和 C1000K 的首字母 C 是 Client 的缩写。C10K 就是单机同时处理 1 万个请求(并发连接 1 万)的问题,而 C1000K 也就是单机支持处理 100 万个请求(并发连接 100 万)的问题。 C10K C10K 问题最早由 Dan Kegel 在 1999 ...

2019-06-05 11:38:30

阅读数 43

评论数 0

Linux 性能优化笔记:网络基础

网络模型 说到网络,我想你肯定经常提起七层负载均衡、四层负载均衡,或者三层设备、二层设备等等。那么,这里说的二层、三层、四层、七层又都是什么意思呢? 实际上,这些层都来自国际标准化组织制定的开放式系统互联通信参考模型(Open System Interconnection Reference ...

2019-06-05 09:59:30

阅读数 31

评论数 0

Linux 性能优化笔记:系统I/O 优化思路

I/O 基准测试 按照我的习惯,优化之前,我会先问自己, I/O 性能优化的目标是什么?换句话说,我们观察的这些 I/O 性能指标(比如 IOPS、吞吐量、延迟等),要达到多少才合适呢? 事实上,I/O 性能指标的具体标准,每个人估计会有不同的答案,因为我们每个人的应用场景、使用的文件系统和物...

2019-06-04 17:18:54

阅读数 54

评论数 0

Linux 性能优化笔记:系统I/O的瓶颈分析

文件系统 I/O 性能指标 首先,最容易想到的是存储空间的使用情况,包括容量、使用量以及剩余空间等。我们通常也称这些为磁盘空间的使用量,因为文件系统的数据最终还是存储在磁盘上。 不过要注意,这些只是文件系统向外展示的空间使用,而非在磁盘空间的真实用量,因为文件系统的元数据也会占用磁盘空间。 ...

2019-06-04 17:08:21

阅读数 27

评论数 0

Linux 性能优化笔记:案例【 SQL查询慢 】

分析一个数据库的案例。这是一个基于 Python Flask 的商品搜索应用,商品信息存在 MySQL 中。这个应用可以通过 MySQL 接口,根据客户端提供的商品名称,去数据库表中查询商品信息。 案例准备 本次案例还是基于 Ubuntu 18.04,同样适用于其他的 Linux 系统。我...

2019-06-04 16:57:19

阅读数 35

评论数 0

Linux 性能优化笔记:案例【 磁盘I/O延迟 】

文件系统,是对存储设备上的文件进行组织管理的一种机制。为了支持各类不同的文件系统,Linux 在各种文件系统上,抽象了一层虚拟文件系统 VFS。 它定义了一组所有文件系统都支持的数据结构和标准接口。这样,应用程序和内核中的其他子系统,就只需要跟 VFS 提供的统一接口进行交互。 在文件系统的下...

2019-06-04 16:29:22

阅读数 63

评论数 0

Linux 性能优化笔记: 磁盘I/O

文件系统是对存储设备上的文件,进行组织管理的一种机制。而 Linux 在各种文件系统实现上,又抽象了一层虚拟文件系统 VFS,它定义了一组,所有文件系统都支持的,数据结构和标准接口。 这样,对应用程序来说,只需要跟 VFS 提供的统一接口交互,而不需要关注文件系统的具体实现;对具体的文件系统来说...

2019-06-04 16:15:19

阅读数 32

评论数 0

Linux 性能优化笔记: 文件系统

磁盘和文件系统的管理,也是操作系统最核心的功能。 磁盘为系统提供了最基本的持久化存储。 文件系统则在磁盘的基础上,提供了一个用来管理文件的树状结构。 索引节点和目录项 文件系统,本身是对存储设备上的文件,进行组织管理的机制。组织方式不同,就会形成不同的文件系统。 你要记...

2019-06-04 15:30:36

阅读数 37

评论数 0

Linux 性能优化笔记:系统内存排查

内存性能指标 为了分析内存的性能瓶颈,首先你要知道,怎样衡量内存的性能,也就是性能指标问题。 首先,你最容易想到的是系统内存使用情况,比如已用内存、剩余内存、共享内存、可用内存、缓存和缓冲区的用量等。 已用内存和剩余内存很容易理解,就是已经使用和还未使用的内存。 共享内存是...

2019-06-04 14:17:09

阅读数 84

评论数 0

Linux 性能优化笔记:Swap

Swap 原理 前面提到,Swap 说白了就是把一块磁盘空间或者一个本地文件(以下讲解以磁盘为例),当成内存来使用。它包括换出和换入两个过程。 所谓换出,就是把进程暂时不用的内存数据存储到磁盘中,并释放这些数据占用的内存。 而换入,则是在进程再次访问这些内存的时候,把它们从磁盘读...

2019-06-04 14:02:56

阅读数 68

评论数 0

Linux 性能优化笔记:内存中的Buffer和Cache

内存和 CPU 的关系非常紧密,而内存管理本身也是很复杂的机制,所以感觉知识很硬核、很难啃,都是正常的。但还是那句话,初学时不用非得理解所有内容,继续往后学,多理解相关的概念并配合一定的实践之后,再回头复习往往会容易不少。当然,基本功不容放弃。 在今天的内容开始之前,我们先来回顾一下系统的内存使...

2019-06-04 12:14:11

阅读数 67

评论数 0

Linux 性能优化笔记:内存

同 CPU 管理一样,内存管理也是操作系统最核心的功能之一。内存主要用来存储系统和应用程序的指令、数据、缓存等。 Linux 内核给每个进程都提供了一个独立的虚拟地址空间,并且这个地址空间是连续的。这样,进程就可以很方便地访问内存,更确切地说是访问虚拟内存。 虚拟地址空间的内部又被分为...

2019-06-04 11:58:33

阅读数 22

评论数 0

Linux 性能优化笔记:CPU 性能优化思路

性能优化方法论 在我们历经千辛万苦,通过各种性能分析方法,终于找到引发性能问题的瓶颈后,是不是立刻就要开始优化了呢?别急,动手之前,你可以先看看下面这三个问题。 首先,既然要做性能优化,那要怎么判断它是不是有效呢?特别是优化后,到底能提升多少性能呢? 第二,性能问题通常不是独立的...

2019-06-03 18:00:26

阅读数 897

评论数 0

提示
确定要删除当前文章?
取消 删除