IT技术文章收藏

Linux性能调优指南

2018-02-07  本文已影响221人  AlstonWilliams

在很久以前,就对性能调优有非常浓厚的兴趣。虽然之前也在做过一些性能调优的工作,但是主要集中在代码层面,以及业务层面。对如何从Linux操作系统方面进行调优,一直都没有一个清晰的认识。不过,最近偶然发现了一本IBM出的Linux调优指南,于是就拜读了一下。

读完一些之后,就发现这本书确实就是我所需要的一本书。

虽然之前读过一些关于操作系统的书籍,但是并不懂如何把它们应用到性能调优中。而从网上看到的一些关于性能调优的文章,也主要是集中在检测并发现性能瓶颈这些我们早就清楚的内容。对于发现瓶颈之后,如何调优,从哪些方面进行调优,这背后的原理是什么,为什么要这么调优,却没有详细的说明。

而这本书恰恰弥补了这个空缺。弥补了操作系统高层理论以及底层调优之间的空缺。我们熟悉的操作系统,以及计算机网络,他们的处理过程,都是一些可以优化的点。

这本书,其实称为指南更合适。从CPU,内存,IO,计算机网络等方面,一一为我们展示了优化的过程。

这本指南也不厚,大概只有160页。内容不多,非常精简。同时也造成了一个缺点,就是,很多内容并不能全面铺开。

但是感觉用这本指南来进入性能调优的世界,还是绰绰有余的。

这本指南的名称是,《Linux Performance and Tuning Guidelines》

这篇文章,便是我在读完这本指南的时候,摘录的一些笔记。

CPU方面

处理器指标

消除CPU瓶颈的方法

内存方面

内存指标

free工具输出解释

0.png

消除内存瓶颈的方法

文件系统方面

文件系统指标

Linux中常见的文件系统

其中,Ext3能够保证数据的一致性。而且,还能够通过配置journal mode,在数据的完整性和速度之间取得一个较好的平衡。

而JFS和XFS,主要用在需要支持大文件的场景中。

消除文件系统瓶颈的方法

网络方面

网络指标

数据传输的过程

Linux中的协议栈,更注重的是可靠性和低延迟,而不是低开销和高吞吐量。

由于每一个数据包都会引发一次中断,所以,Linux中引入了一项叫做NAPI的技术。当第一个数据包到来时,还是跟之前一样,会引发一次中断。但是从此之后,网络接口会启动轮训模式,即,当有数据包到达时,不会发出中断,而是直到buffer都满了的时候,才发出一个中断。这样就能减少中断的次数。

TCP/IP传输窗口

TCP/IP传输窗口指的是,在收到ACK响应之前,最多能够发送的数据量。接收主机会通过TCP首部中的window size字段告诉发送主机传输窗口的大小。通过使用传输窗口,TCP能够处理地效率更高一些,因为发送主机不需要等待每一个数据包的ACK。

高速网络中,可以使用一种叫做窗口伸缩的技术,来增加传输窗口的大小。

Offload

如果你的网络适配器支持offload功能,那么你可以内核就可以将一部分工作转移到网络适配器,来减少CPU的工作量,进而提高性能。

常见的offload功能有:

消除网络瓶颈的方法

Linux的工具

性能监控工具

分析工具

/proc

/proc目录中的内容,对于查看系统状态,应用程序的状态至关重要。

/proc目录中,又有这么几块:

从安装Linux就开始调优

考虑下面几个问题:

上一篇 下一篇

猜你喜欢

热点阅读