对linux命令分析 linux命令具备哪些特点

linux性能分析命令--pidstat pidstat主要用于监控全部或指定进程占用系统资源的情况对linux命令分析,如CPU,内存、设备IO、任务切换、线程等 。pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息 。用户可以通过指定统计的次数和时间来获得所需的统计信息 。pidstat可以监控到进程级别的信息对linux命令分析;这就意味着我们更容易定位问题源头 。
pidstat [ 选项 ] [ 时间间隔 ] [ 次数 ]
常用的参数:
等同于pidstat -u -p ALL,等同于pidstat -u
使用-r选项,pidstat将显示各活动进程的内存使用统计:
使用-d选项,我们可以查看进程IO的统计信息:
[root@vircent7 ~]# pidstat -w
Linux 3.10.0-1160.45.1.el7.x86_64 (vircent7.kyj)2021年12月15日x86_64(4 CPU)
对监控对象进行筛选
以上所有命令结尾,加上两个数字,即可设定采样间隔和采样次数
表示每1秒采集一次数据 , 一共采集5次
如何1分钟内对 Linux 性能快速分析(113资讯网)当你在IDC主机商购买一台系统为 Linux 服务器之后,我想大家第一时间就是对主机进行一个性能分析 , 这里我跟大家分享几个命令 , 能让大家在一分钟以内对自己的性能有一个大致的鸟解?
uptime
dmesg | tail
vmstat 1
mpstat -P ALL 1
pidstat 1
iostat -xz 1
free -m
sar -n DEV 1
sar -n TCP,ETCP 1
top
这10个命令到底是什么意思,我为大家一一解释一下:
1.uptime
# uptime
03:16:26 up 21:31, 1 user, load average: 10.02, 06.43, 09.02
在上面的例子中,平均负载显示是在不断增加的,1 分钟的值是 10 , 相比 15 分钟的值 09 来说是增加了 。这个数字这么大就意味着有事情发生了.
2. dmesg | tail
# dmesg | tail
[14.102501] ISO 9660 Extensions: RRIP_1991A
[15.900216] ISO 9660 Extensions: Microsoft Joliet Level 3
[15.900234] ISO 9660 Extensions: RRIP_1991A
[17.030540] EXT4-fs (vda1): resizing filesystem from 5242619 to 13106939 blocks
[17.151434] random: crng init done
[17.151436] random: 7 urandom warning(s) missed due to ratelimiting
[18.314268] EXT4-fs (vda1): resized filesystem to 13106939
[20.394666] new mount options do not match the existing superblock, will be ignored
[38.405804] ISO 9660 Extensions: Microsoft Joliet Level 3
[38.407599] ISO 9660 Extensions: RRIP_1991A
这里展示的是最近 10 条系统消息日志 , 如果系统消息没有就不会展示 。主要是看由于性能问题导致的错误 。
3. vmstat 1
# vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
rbswpdfreebuffcachesisobiboincs us sy id wa st
100 324644 141184 127062800104020743111 9900
000 324388 141184 1270628000013028011 9800
000 324388 141184 127062800008916900 10000
000 324420 141184 1270628000011822510 9900
000 324420 141184 12706280003212525400 9910
110 324420 141184 1270628000689617100 9640
000 324452 141184 127062800018412716601 9630
^C
r: CPU 上的等待运行的可运行进程数 。这个指标提供了判断 CPU 饱和度的数据,因为它不包含 I/O 等待的进程 。可解释为:“r” 的值比 CPU 数大的时候就是饱和的 。
free:空闲内存,单位是 k 。如果这个数比较大,就说明你还有充足的空闲内存 。“free -m” 和下面第 7 个命令,可以更详细的分析空闲内存的状态 。
si,so:交换进来和交换出去的数据量,如果这两个值为非 0 值,那么就说明没有内存了 。
us,sy,id,wa,st:这些是 CPU 时间的分解,是所有 CPU 的平均值 。它们是用户时间,系统时间(内核),空闲,等待 I/O 时间 , 和被偷的时间(这里主要指其它的客户,或者使用 Xen,这些客户有自己独立的操作域) 。
4. mpstat -P ALL 1
# mpstat -P ALL 1
Linux 4.15.0-88-generic (VM-0-17-ubuntu)06/15/2020_x86_64_ (1 CPU)
03:33:26 AMCPU\usr%nice%sys %iowait%irq%soft%steal%guest%gnice%idle
03:33:27 AMall0.000.000.001.000.000.000.000.000.0099.00
03:33:27 AM00.000.000.001.000.000.000.000.000.0099.00
这个命令打印各个 CPU 的时间统计,可以看出整体 CPU 的使用是不是均衡的 。由于我使用的是1H2G主机看不出区别!
5. pidstat 1
# pidstat 1
Linux 4.15.0-88-generic (VM-0-17-ubuntu)06/15/2020_x86_64_ (1 CPU)
03:34:47 AMUIDPID\usr %system%guest%wait%CPUCPUCommand
03:34:48 AM011201.000.000.000.001.000sshd
pidstat 命令为每个 CPU 统计信息功能 。由于我使用的是1H2G主机看不出区别!
6. iostat -xz 1
# iostat -xz 1
Linux 4.15.0-88-generic (VM-0-17-ubuntu)06/15/2020_x86_64_ (1 CPU)
avg-cpu:\user%nice %system %iowait%steal%idle
0.670.010.520.290.0098.52
Devicer/sw/srkB/swkB/srrqm/swrqm/s%rrqm%wrqm r_await w_await aqu-sz rareq-sz wareq-szsvctm\util
loop00.000.000.000.000.000.000.000.000.220.000.009.640.000.000.00
scd00.020.000.480.000.000.000.000.000.210.000.0027.720.000.190.00
vda0.644.079.1540.590.001.990.0032.853.582.310.0114.319.960.240.11
avg-cpu:\user%nice %system %iowait%steal%idle
0.000.000.000.000.00100.00
Devicer/sw/srkB/swkB/srrqm/swrqm/s%rrqm%wrqm r_await w_await aqu-sz rareq-sz wareq-szsvctm\util
r/s, w/s, rkB/s, wkB/s:这些表示设备上每秒钟的读写次数和读写的字节数(单位是k字节) 。这些可以看出设备的负载情况 。性能问题可能就是简单的因为大量的文件加载请求 。
await:I/O 等待的平均时间(单位是毫秒) 。这是应用程序所等待的时间 , 包含了等待队列中的时间和被调度服务的时间 。过大的平均等待时间就预示着设备超负荷了或者说设备有问题了 。
avgqu-sz:设备上请求的平均数 。数值大于 1 可能表示设备饱和了(虽然设备通常都是可以支持并行请求的,特别是在背后挂了多个磁盘的虚拟设备) 。
\util:设备利用率 。是使用率的百分数,展示每秒钟设备工作的时间 。这个数值大于 60% 则会导致性能很低(可以在 await 中看),当然这也取决于设备特点 。这个数值接近 100% 则表示设备饱和了 。
7. free -m/h
ubuntu@VM-0-17-ubuntu:~# free -m
totalusedfreesharedbuff/cacheavailable
Mem:1833137313513811506
Swap:000
ubuntu@VM-0-17-ubuntu:~$ free -h
totalusedfreesharedbuff/cacheavailable
Mem:1.8G139M311M5.8M1.3G1.5G
Swap:0B0B0B
这个命令我相信大家都熟悉,buffers:用于块设备 I/O 缓冲的缓存 , cached:用于文件系统的页缓存 。
8. sar -n DEV 1
ubuntu@VM-0-17-ubuntu:~# sar -n DEV 1
Linux 4.15.0-88-generic (VM-0-17-ubuntu)06/15/2020_x86_64_ (1 CPU)
03:43:35 AMIFACErxpck/stxpck/srxkB/stxkB/srxcmp/stxcmp/srxmcst/s%ifutil
03:43:36 AMeth011.0010.000.791.060.000.000.000.00
03:43:36 AMlo0.000.000.000.000.000.000.000.00
使用这个工具是可以检测网络接口的吞吐:rxkB/s 和 txkB/s,作为收发数据负载的度量 , 也是检测是否达到收发极限 。在上面这个例子中,eth0 接收数据达到 0.79 kb 字节/秒,发送数据达到1.06 字节/秒 。
9. sar -n TCP,ETCP 1
ubuntu@VM-0-17-ubuntu:~# sar -n TCP,ETCP 1
Linux 4.15.0-88-generic (VM-0-17-ubuntu)06/15/2020_x86_64_ (1 CPU)
03:49:56 AMactive/s passive/siseg/soseg/s
03:49:57 AM0.000.005.053.03
03:49:56 AMatmptf/sestres/s retrans/s isegerr/sorsts/s
03:49:57 AM0.000.000.000.000.00
这是对 TCP 关键指标的统计,它包含了以下内容:
active/s:每秒本地发起的 TCP 连接数(例如通过 connect() 发起的连接) 。
passive/s:每秒远程发起的连接数(例如通过 accept() 接受的连接) 。
retrans/s:每秒TCP重传数 。
10. top
ubuntu@VM-0-17-ubuntu:~# top
top - 03:53:20 up 1 day,1:41,1 user,load average: 0.01, 0.04, 0.00
Tasks:89 total,1 running,52 sleeping,0 stopped,0 zombie
%Cpu(s):0.3 us,0.3 sy,0.0 ni, 99.3 id,0.0 wa,0.0 hi,0.0 si,0.0 st
KiB Mem :1877076 total,317436 free,143420 used,1416220 buff/cache
KiB Swap:0 total,0 free,0 used.1540856 avail Mem
PID USERPRNIVIRTRESSHR S %CPU %MEMTIMECOMMAND
【对linux命令分析 linux命令具备哪些特点】3730 root20010568868125840 S0.30.40:00.01 sshd
7546 root200644608149246776 S0.30.82:48.99 YDService
1 root20015989292606796 S0.00.50:06.45 systemd
2 root200000 S0.00.00:00.00 kthreadd
4 root0 -20000 I0.00.00:00.00 kworker/0:0H
6 root0 -20000 I0.00.00:00.00 mm_percpu_wq
7 root200000 S0.00.00:04.29 ksoftirqd/0
8 root200000 I0.00.00:08.85 rcu_sched
9 root200000 I0.00.00:00.00 rcu_bh
10 rootrt0000 S0.00.00:00.00 migration/0
11 rootrt0000 S0.00.00:00.16 watchdog/0
12 root200000 S0.00.00:00.00 cpuhp/0
13 root200000 S0.00.00:00.00 kdevtmpfs
top 命令包含了很多我们前面提到的指标 。这个命令可以很容易看出指标的变化表示负载的变化 , 这个看起来和前面的命令有很大不同 。
top 的一个缺陷也比较明显,很难看出变化趋势,其它像 vmstat 和 pidstat 这样的工具就会很清晰 , 它们是以滚动的方式输出统计信息 。所以如果你在看到有问题的信息时没有及时的暂停下来(Ctrl-S 是暂停, Ctrl-Q 是继续),那么这些有用的信息就会被清屏 。
文章原文:(来都来了 , 就去我博客看下?。。?
linuxmv命令详解mv命令是linux下的一个文件管理命令,通常是用于移动或改名文件,mv主要有三大功能,具体介绍如下:
1、将文件改名;
2、移动文件;
3、移动目录 。
mv的具体命令语法格式是mv [参数] 。
参数:
-i若存在同名文件,则向用户询问是否覆盖
-f覆盖已有文件时,不进行任何提示
-b当文件存在时,覆盖前为其创建一个备份
-u当源文件比目标文件新 , 或者目标文件不存在时,才执行移动此操作
以上就是小编的分享了,希望能够帮助到大家 。
本文章基于ThinkpadE15品牌、centos7系统撰写的 。
linuxcp命令详解cp命令是linux下的一个文件管理命令,通常是用于复制文件或目录,cp命令主要有两个功能,具体介绍如下:
1、能够同时复制多个文件到一个指定的目录中;
2、能够将多个文件复制到一个具体的文件名或一个已经存在的目录下 。
参考例子:
复制目录,具体命令为:
[root@linuxcool~]#cp-Rdir1dir2/
cp命令的具体语法格式为cp[参数][文件] 。
参数:
-f若目标文件已存在 , 就会直接覆盖原文件
-i若目标文件已存在,就会询问是否覆盖
-p保留源文件或目录的所有属性
-r递归复制文件和目录
-d当复制符号连接时,将目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录
-l对源文件建立硬连接 , 而非复制文件
-s对源文件建立符号连接,而非复制文件
-b覆盖已存在的文件目标前将目标文件备份
-v详细显示cp命令执行的操作过程
以上就是小编的分享了 , 希望能够帮助到大家 。
本文章基于ThinkpadE15品牌、centos7系统撰写的 。
Linux常见日志统计分析命令在上文中,我们已经详细介绍 linux 三剑客的基本使用,接下来我们看看具体在性能测试领域的运用,本文主要介绍的是在 Tomcat 和 Nginx access日志的统计分析 。
server.xml使用配置方式,%D-请求时间,%F-响应时间
字段说明如下:
日志样例:
使用默认 combined 的经典格式上扩展response_timeupstream_response_time
nginx.conf使用配置方式:
字段说明如下:
日志示例:
为了能理解 AWK 程序,我们下面概述其基本知识 。
模式( pattern ) 用于匹配输入中的每行文本 。对于匹配上的每行文本,awk 都执行对应的 动作( action ) 。模式和动作之间使用花括号隔开 。awk 顺序扫描每一行文本,并使用 记录分隔符(一般是换行符)将读到的每一行作为 记录,使用 域分隔符( 一般是空格符或制表符 ) 将一行文本分割为多个 域, 每个域分别可以使用 2, … 表示 。1 表示第一个域,表示第二个域,n 表示第 n 个域 。$0 表示整个记录 。模式或动作都可以不指定,缺省模式的情况下,将匹配所有行 。缺省动作的情况下,将执行动作 {print},即打印整个记录 。
此处使用Nginx access.log 举例,Tomcat 日志自己举一反三 。使用 awk 分解出Nginx access日志中的信息
以此类推…… 当我们使用默认的域分割符时,我们可以从日志中解析出下面不同类型的信息:
我们不难发现,仅使用默认的域分隔符,不方便解析出请求行、引用页和浏览器类型等其他信息,因为这些信息之中包含不确定个数的空格 。因此,我们需要把域分隔符修改为 “,就能够轻松读出这些信息 。
注意:这里为了避免 Linux Shell 误解 “ 为字符串开始 , 我们使用了反斜杠,转义了 “。现在,我们已经掌握了 awk 的基本知识,以及它是怎样解析日志的 。
此处使用Nginx access.log 举例,Tomcat 日志自己举一反三 。
如果我们想知道那些类型的浏览器访问过网站,并按出现的次数倒序排列,我可以使用下面的命令:
此命令行首先解析出浏览器域,然后使用管道将输出作为第一个 sort 命令的输入 。第一个 sort 命令主要是为了方便 uniq 命令统计出不同浏览器出现的次数 。最后一个 sort 命令将把之前的统计结果倒序排列并输出 。
我们可以使用下面的命令行 , 统计服务器返回的状态码,发现系统可能存在的问题 。
正常情况下,状态码 200 或 30x 应该是出现次数最多的 。40x 一般表示客户端访问问题 。50x 一般表示服务器端问题 。下面是一些常见的状态码:
HTTP 协议状态码定义可以参阅:
查找并显示所有状态码为 404 的请求
统计所有状态码为 404 的请求
现在我们假设某个请求 ( 例如 : URI: /path/to/notfound ) 产生了大量的 404 错误,我们可以通过下面的命令找到这个请求是来自于哪一个引用页,和来自于什么浏览器 。
有时候会发现其他网站出于某种原因,在他们的网站上使用保存在自己网站上的图片 。如果您想知道究竟是谁未经授权使用自己网站上的图片,我们可以使用下面的命令:
注意:使用前,将修改为自己网站的域名 。
统计共有多少个不同的 IP 访问:
统计每一个 IP 访问了多少个页面:
将每个 IP 访问的页面数进行从小到大排序:
统计 2018 年 8 月 31 日 14 时内有多少 IP 访问 :
统计访问最多的前十个 IP 地址
查看某一个 IP访问了哪些页面:
统计某个 IP 的详细访问情况,按访问频率排序
列出传输大小最大的几个文件
列出输出大于 204800 byte ( 200kb) 的页面以及对应页面发生次数
列出访问最频的页面(TOP100)
列出访问最频的页面([排除php页面】(TOP100)
列出页面访问次数超过100次的页面
列出最近1000条记录,访问量最高的页面
统计每分钟的请求数,top100的时间点(精确到分钟)
统计每小时的请求数,top100的时间点(精确到小时)
统计每秒的请求数,top100的时间点(精确到秒)
统计当天的 pv
说明:
可以使用下面的命令统计出所有响应时间超过 3 秒的日志记录 。
注意:NF 是当前记录中域的个数 。$NF 即最后一个域 。
列出php页面请求时间超过3秒的页面,并统计其出现的次数,显示前100条
列出相应时间超过 5 秒的请求 , 显示前20条
统计蜘蛛抓取次数
统计蜘蛛抓取404的次数
通过本文的介绍,我相信同学们一定会发现 linux三剑客强大之处 。在命令行中 , 它还能够接受 , 和执行外部的 AWK 程序文件 , 可以对文本信息进行非常复杂的处理,可以说“只有想不到的,没有它做不到的” 。
对linux命令分析的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux命令具备哪些特点、对linux命令分析的信息别忘了在本站进行查找喔 。

    推荐阅读