设为首页 加入收藏

TOP

Linux系统调优介绍(一)
2023-07-23 13:39:31 】 浏览:118
Tags:Linux

前言:

Linux服务器运行了很多应用,在高负载下,服务器可能会出现性能瓶颈,例如CPU利用率过高、内存不足、磁盘I/O瓶颈等,从而导致系统卡顿,服务无法正常运行等问题。所以针对以上问题,可以通过调整内核参数和系统的相关组件,优化应用程序来提高服务器的性能和稳定性,避免系统崩溃和服务中断。

Linux系统优化考虑的两个方面:

  • 硬件层面:例如加内存、换用企业级SSD、提高带宽等操作。
  • 软件层面:系统内核参数、硬盘IO以及资源分配方面的配置。

在软件层面如何进行系统优化:

主要从系统内核参数、CPU、IO、网络、内存这几个方面来进行优化。

  • 内存调优:优化系统的内存使用效率,减少内存泄漏和内存碎片等问题。
  • 磁盘调优:提高磁盘的读写速度和可靠性,减少数据丢失和损坏的风险。
  • CPU调优:优化CPU的利用率,提高系统的性能和稳定性。
  • 网络调优:提高网络的性能和稳定性,减少数据传输的延迟和丢失。
  • 进程和线程调优:优化系统的进程调度算法、减少进程和线程的竞争等,提高系统的并发性能和稳定性。

系统优化的步骤:

1、使用系统监控工具、性能测试工具等,收集系统的性能数据和指标,了解系统当前的运行状态,从而识别系统的瓶颈和优化空间。

2、使用追踪工具进行追踪,定位到具体的应用程序和进程。

3、根据定位到的应用程序和进程进行分析,分析导致出问题的原因,从而对内存、磁盘、CPU等方面进行优化。

系统性能的相关概念:

IOPS:Input/Output Per Second。是指每秒钟可以进行的输入/输出操作次数,是衡量存储设备性能的重要指标之一

吞吐量:Throughput。系统在单位时间内能够处理的事务数量。

响应时间:Response Time。系统从接收请求到返回结果所需的时间。

带宽:Bandwidth。数据传输的速度,通常以每秒传输的比特数(bps)或字节(Bps)来衡量。

延时:Latency。指从请求发出到收到响应所需的时间。

瓶颈:Bottleneck。操作系统中限制系统性能的关键因素或资源。当系统中某个组件的处理能力达到极限,无法满足其他组件的需求时,就会出现瓶颈。

工作负载:Workload。是指计算机系统中正在运行的应用程序或任务的集合。

缓存:cache。缓存的作用就是用来提高系统性能的一种技术。

CPU缓存::CPU缓存是一种硬件设备,通常是集成在CPU芯片中。CPU缓存分为三个级别,包括L1、L2和L3缓存,这些级别按照缓存大小和访问速度逐渐递减。用于存储CPU需要频繁访问的数据和指令,以便更快地执行计算任务。CPU缓存速度非常快,通常比内存缓存快几个数量级,因此能够大大提高计算机的运行速度。

内存缓存:内存缓存通常是通过在系统内存中划分出一部分空间来实现的,这部分空间被称为缓存区。缓存区是由操作系统内核管理的,它在系统启动时就被分配出来,并在系统运行期间一直存在。

当应用程序需要访问内存中的数据时,内存缓存会首先检查缓存区中是否已经缓存了该数据。如果已经缓存,则可以直接从缓存区中读取数据,从而避免了从内存中读取数据的时间和能耗。如果缓存区中没有该数据,则需要从内存中读取,并将数据存储到缓存区中以供下一次访问使用。

缓冲:Buffer。缓冲通常是在内存中分配一块空间来实现的,这些空间被称为缓冲区。缓冲区是用于临时存储数据的区域,数据在这里被暂时保存并等待被进一步处理。

如将数据从一个设备传输到另一个设备时,缓冲可以暂存数据,以防止数据在传输过程中丢失或损坏。因为如果发送方速度太快,接受方不能及时接收就会导致数据丢失。

输入缓冲区(Input Buffer):用于存储输入设备(例如键盘、鼠标等)发送过来的数据,等待系统进一步处理。

输出缓冲区(Output Buffer):用于存储输出设备(例如打印机、屏幕等)接受数据,等待设备进行处理。

文件缓冲区(File Buffer):用于存储文件数据的内存区域,通过将文件数据缓存到内存中,可以减少访问磁盘的次数,提高文件读写的效率。

磁盘缓存(Disk Cache):用于存储磁盘上的数据,通过将常用的数据缓存到内存中,可以加速磁盘访问,提高系统的性能。

Linux资源信息的监控

通过对系统性能参数的监控和收集,了解当前系统的负载、CPU使用情况,内存使用、IO等信息。
image

一:查看系统整体的信息:

1、vmstat工具

vmstat是系统自带的一个工具,vmstat主要查看的是内存和进程的使用情况,其它例如进程、系统IO、上下文切换这些信息也可以查看。

例如:
image

procs:显示进程的活动情况。

??r :正在运行的以及处于排队状态的线程数,这个值和进程有关系,如果值长期大于cpu的核数(lscpu查看cpu个数),说明cpu不够,任务运行的进程太多。
??b :进程阻塞的数量,阻塞状态就是一只处于排队状态。这个值长期大于0就表明cpu资源严重不够了。一直轮不到给你分配cpu

memory:显示系统的内存使用情况。

??swap:交换分区使用了多少。0表示还没有任何使用,如果已经开始使用交换分区了,说明内存已经不够用了
??buff:缓冲区还剩多少 单位为k,一般是往硬盘里面写的时候会占用这个值。
??cache:缓存还剩多少 单位也是k

swap:显示系统的交换空间使用情况。

??说明:si和so只要大于0,说明内存有问题了。例如内存泄露、内存不够等情况。
??si:swap input:硬盘到交换分区的一个大小。
??so:swap output:从交换分区到硬盘的一个大小。

io:显示系统的磁盘I/O活动情况。

??bi:往硬盘里面写的一个值
??bo:往硬盘里面读的一个值。单位是k
??说明:如果系统的bi和bo值很大,说明io有问题。

system:显示系统的CPU使用情况。

??in:中断的数目,
??cs:上下文切换的数目
??说明:如果系统中存在大量的上下文切换和终端,说明系统可能存在某些问题

cpu:显示系统的CPU使用率。

??us:用户进程所消耗的时间
??sy:系统进程消耗的一个时间
??id:系统的空闲时间
??wa:硬盘io出现了阻塞,数据太多入口被堵死了。但是写不进去,所以就开始等待。 如果wa这个值比较大说明cpu的资源够,但是io有问题导致浪费了cpu。
??st:在虚拟化的时候会用到。

2、mpstat工具

mpstat工具和vmstat不同点在于mpstat主要监视CPU使用情况,包括每个CPU的使用率、上下文切换、中断和软中断等信息。

例如:

image

CPU:显示每个CPU的编号,all表示所有的cpu

%usr:显示用户空间进程使用CPU的百分比。

??说明:如果%usr较高,表示用户空间进程占用了大量CPU资源,可能是某个进程出现了问题或者某个进程需要更多的CPU资源。

%nice:显示优先级较低的用户空间进程使用CPU的百分比。

%sys:显示内核空间进程使用CPU的百分比。

??说明:如果%sys较高,表示内核空间进程占用了大量CPU资源,可能是某个内核模块出现了问题或者某个进程在等待内核资源。

%iowait:显示CPU等待I/O完成的百分比。

??说明:如果%iowait较高,表示CPU正在等待I/O操作完成,可能是磁盘、网络或其他I/O设备出现

首页 上一页 1 2 3 4 5 6 7 下一页 尾页 1/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇ssh 远程连接方式总结 下一篇centos8-x86_64安装kylinv10-arrc..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目