最近对Linux调优比较感兴趣,新开了一个坑来学习Linux性能调优。以下学习路线来自chatGPT3.5,至于为什么不是4.0,大概是因为养的会员太多了,额外付不起136的升级款月租了。说来真奇妙,原来卖6.6的验证码现在全包卖25一个号了,短短两个月翻了4倍。也许以后它会取代很多岗位,但我更希望自己是一个受益于它的人。
今天是我学习Linux调优的第一天,请给我推荐今天的学习内容
很高兴听到您开始学习Linux调优!以下是一些适合初学者的学习内容:
了解系统性能指标:在学习调优之前,您需要了解系统性能指标,例如CPU利用率、内存使用率、磁盘IO等等。可以学习如何使用工具如top、htop、iostat、vmstat等来查看系统性能指标。
学习系统内核参数的调整:Linux内核提供了各种参数来控制系统的行为。您可以学习如何查看和修改内核参数,例如使用sysctl命令查看和修改内核参数。
学习文件系统的调优:文件系统是系统性能的一个关键因素。您可以学习如何使用df和du命令来查看磁盘使用情况,以及如何调整文件系统参数以提高性能。
学习网络调优:网络性能是现代系统中至关重要的一部分。您可以学习如何使用工具如ifconfig、ip、netstat和ss来查看网络状态,并了解如何调整网络参数以提高性能。
学习使用性能分析工具:性能分析工具是调优过程中不可或缺的一部分。您可以学习如何使用工具如strace、lsof、tcpdump、perf、valgrind等来分析系统性能瓶颈。
这些是Linux调优的一些基本学习内容,您可以根据自己的兴趣和需要进一步学习和探索。希望这些信息能够对您有所帮助!
top 命令一般学过Linux的都用过,但htop我是没用过的,需要下载htop包,但由于我在下载htop包的时候报错,原因是apt-get命令占用,本来正确的解决方法应该是kill占用后继续下载,我为了图个方便,直接重启后,再下载htop,重启后使用
sudo apt-get update
sudo apt-get install htop
下载成功无误后,就可以执行htop命令
执行htop命令以后,可以看到如下图所示的界面,发现有彩色的部分,整体和top命令差不多,比top命令展示的界面更加丰富。
【此处有一张图尚未上传,等有空会补上这张图】
询问GPT
请问htop界面怎么看
htop是一款功能强大的交互式进程查看器,它可以帮助你查看正在运行的系统进程的信息。以下是一些常用的htop界面元素及其含义:
CPU和内存信息:在htop的顶部,你可以看到系统的CPU和内存使用情况。这些信息可以帮助你了解系统的资源使用情况。
进程列表:htop的核心是进程列表。在进程列表中,你可以看到正在运行的所有进程的详细信息,包括进程ID、CPU和内存使用情况、进程状态等。
进程状态:进程状态栏位于进程列表的左侧,它可以告诉你每个进程的状态。例如,如果一个进程正在运行,它的状态将显示为“R”,如果一个进程正在睡眠,它的状态将显示为“S”。
进程树:在进程列表中,你可以看到所有进程的关系树。这个树形结构可以帮助你理解进程之间的关系。
进程排序:在进程列表中,你可以按照不同的指标对进程进行排序。例如,你可以按照CPU使用率、内存使用率、进程ID等对进程进行排序。
进程过滤:如果进程列表过于庞大,你可以使用htop的过滤功能来快速查找特定的进程。你可以按照进程名、用户、CPU使用率等过滤进程。
以上是htop的一些常用界面元素及其含义。熟悉这些界面元素可以帮助你更好地使用htop来查看系统进程信息。
看来它没有完全理解我的意思,我换个问法
详细解释一下htop命令下展示的信息
htop是一款功能强大的交互式进程查看器,它可以帮助你查看正在运行的系统进程的信息。以下是htop命令下展示的一些常见信息及其含义:
PID:进程ID,唯一标识一个进程。(笔者注:上面的图片中PID有3位数4位数,都是唯一标识一个进程)
USER:进程的拥有者。(笔者注:有root gdm等等)
PR:进程的优先级。(图片这边统一为20)
NI:进程的优先级别值。(图片这边统一为0)
VIRT:进程使用的虚拟内存量。(图片这边各不相同)
RES:进程使用的物理内存量。(也一样每个都不同)
SHR:进程使用的共享内存量。(这个不一样很正常)
S:进程的状态,可以是R(运行)、S(睡眠)、D(磁盘休眠)、Z(僵尸进程)等。
(图片中S比较多)
%CPU:进程使用CPU的百分比。(图片中都是百分之零点多)
%MEM:进程使用内存的百分比。
TIME+:进程使用的CPU时间。
COMMAND:进程的命令行。
以上是htop命令下展示的一些常见信息及其含义。htop还提供了许多其他的功能,例如按照进程名、用户、CPU使用率等过滤进程,按照不同的指标对进程进行排序,以及使用颜色标识不同的进程状态等。熟悉htop的这些功能可以帮助你更好地查看和管理系统进程。
使用
sudo apt-get update
sudo apt-get install sysstat
命令下载iostat包
使用命令iostat后可以看到界面如下图所示
【此处有一张图尚未上传,等有空会补上这张图】
详细解释以下iostat的运行界面
iostat是一个用于监视系统I/O性能的工具,它可以展示系统磁盘、网络等各种I/O设备的活动情况。以下是iostat运行时的常见界面及其含义:
Linux版本和内核版本信息:iostat第一行展示了当前运行的Linux版本和内核版本信息。(图片上有版本信息)
设备名称:iostat的第二行展示了监视的设备名称,例如Device列下的sda表示磁盘设备/dev/sda。
读写次数:iostat的第三行展示了设备的读写操作次数,其中rrqm/s表示每秒读请求合并的次数,wrqm/s表示每秒写请求合并的次数,r/s表示每秒读操作次数,w/s表示每秒写操作次数。
读写字节数:iostat的第四行展示了设备的读写字节数,其中rKB/s表示每秒读取的KB数,wKB/s表示每秒写入的KB数,rkB/s表示每秒读取的kB数,wkB/s表示每秒写入的kB数。
IO等待时间和IO处理时间:iostat的第五行展示了设备的IO等待时间和IO处理时间,其中await表示平均每次IO操作的等待时间,svctm表示平均每次IO操作的服务时间。
CPU使用情况:iostat的第六行展示了每个CPU的使用情况,其中%user表示用户进程使用CPU的百分比,%nice表示以较低优先级运行的用户进程使用CPU的百分比,%system表示内核进程使用CPU的百分比,%iowait表示CPU等待IO操作完成的百分比,%steal表示在虚拟化环境下,由于其它虚拟机使用CPU而导致当前虚拟机失去使用CPU的时间百分比,%idle表示CPU空闲的百分比。
以上是iostat的常见界面及其含义。iostat还提供了许多其他的功能,例如通过-x选项展示设备的扩展统计信息,通过-d选项展示每个设备的详细统计信息,以及通过-n选项展示网络设备的统计信息等。熟悉iostat的这些功能可以帮助你更好地了解系统I/O性能。
iostat界面中tps KB_read/s KB_wrtn/s KB_read KB_wrtn分别是什么意思
在iostat命令的输出中,tps表示每秒传输的I/O操作数(transactions per second),KB_read/s表示每秒读取的数据量,KB_wrtn/s表示每秒写入的数据量,而KB_read和KB_wrtn则分别表示自系统启动以来读取和写入的总数据量(以KB为单位)。
这些指标可以用来衡量磁盘的使用情况,例如tps可以反映磁盘I/O的负载情况,KB_read/s和KB_wrtn/s可以反映磁盘的读写速度,而KB_read和KB_wrtn则可以反映磁盘的总体使用情况。
运行图片由下图所示
【此处有一张图尚未上传,等有空会补上这张图】
vmstat是一个常用的性能监控工具,它可以提供系统整体性能指标和进程级别的统计信息。常用的vmstat参数包括:
间隔时间(-n):指定vmstat输出结果的时间间隔,单位为秒,默认值为1秒;
输出次数(-c):指定vmstat输出结果的次数,即打印多少行结果后停止,缺省值为无限次;
显示模式(-w):设置输出结果的宽度,通常设置为0以使用默认的宽度;
版本信息(-V):显示vmstat的版本信息。
vmstat默认输出的内容包括:
r:表示等待CPU资源的进程数,该值通常是CPU数量的1-2倍之间为宜;
b:表示处于不可中断(blocked)状态的进程数;
swpd:表示已使用的虚拟内存(swap)大小,单位为KB;
free:表示空闲内存大小,单位为KB;
buff:表示用于缓存文件的内存大小,单位为KB;
cache:表示用于缓存页面(page cache)的内存大小,单位为KB;
si:表示每秒从磁盘读入的数据量,单位为KB;
so:表示每秒写入到磁盘的数据量,单位为KB;
bi:表示每秒从块设备(磁盘)读入的块数,单位为块;
bo:表示每秒写入到块设备的块数,单位为块;
in:表示每秒产生的中断数;
cs:表示每秒产生的上下文切换数;
us:表示用户进程所占用的CPU时间百分比;
sy:表示系统进程所占用的CPU时间百分比;
id:表示空闲CPU时间百分比;
wa:表示等待IO完成的CPU时间百分比。
Linux 5.4.0-80-generic (ubuntu): 显示系统的主机名和内核版本号。
03/24/2023 显示日期。
x86_64: 显示系统的处理器架构。
(4 CPU): 显示系统的 CPU 数量。
09:33:26 AM: 显示当前的时间。
CPU: 显示 CPU 的使用情况。
%user: 显示用户空间进程的 CPU 使用率。
%nice: 显示优先级较低的进程的 CPU 使用率。
%system: 显示内核空间进程的 CPU 使用率。
%iowait: 显示等待 I/O 操作完成的 CPU 时间百分比。
%steal: 显示 hypervisor 偷取 CPU 时间的百分比。
%idle: 显示 CPU 空闲的时间百分比。
Average: 显示所收集数据的平均值。
该命令将每5秒收集一次CPU使用率的统计信息,共收集10次。
sar -r 命令会显示系统的内存统计信息,包括物理内存、交换空间、内核缓存等。以下是 sar -r 命令输出信息中的一些重要字段:
kbmemfree:可用的空闲内存大小(单位:KB)。
kbmemused:已使用的内存大小(单位:KB)。
%memused:已使用内存的百分比。
kbbuffers:内核缓存的大小(单位:KB)。
kbcached:文件缓存的大小(单位:KB)。
kbcommit:提交的内存大小(单位:KB)。
%commit:已提交内存的百分比。
kbactive:活跃的内存大小(单位:KB)。
kbinact:不活跃的内存大小(单位:KB)。
使用 sar -r 命令可以监控系统内存的使用情况,通过这些信息可以及时发现内存问题并做出相应的调整。
接下来还有 学习系统内核参数的调整;
学习文件系统的调优;
学习网络调优;
学习使用性能分析工具。