linux扫描pv命令 linux扫描仪

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 存储 PV、VG 和 LV 及其使用 LVM ( Logical Volume Manager ) 架构采用分层结构,可以让分区变得弹性 , 可以随时随地的扩大和缩小分区大小 。
磁盘分区后使用pvcreate命令可以将分区创建为物理卷 PV 。
将多个 PV 组合起来,使用vgcreate命令创建成卷组 VG 。
VG 相当于整合过的硬盘,LV 则相当于分区,使用lvcreate创建 lV 。
如何创建 PV、VG、LV 及挂载目录 ?
Linux文件系统-LVM逻辑卷 LVM(Logical Volume Manager)卷组管理器 , 通过对底层物理磁盘的封装,可以将多块物理磁盘组合成逻辑资源池,提供给上层应用使用(如文件系统). LVM的好处是,可以跨物理硬盘为文件系统提供容量,并且可以动态进行分区容量的调整,而不会损坏原有的文件系统.
物理磁盘 :物理存储介质,可以是整块物理存储或一个分区.
物理卷PV(physical volume) :LVM要使用物理磁盘,在物理磁盘的头部写入lvm标签头,就创建了一个PV , PV是组成VG的基本单元.
卷组VG(Volume Group) :VG相当于非LVM系统中的物理硬盘,一个卷组VG由一个或多个PV组成 , 形成一个存储资源池.
逻辑卷LV(logical volume) :LV相当于非LVM系统中的硬盘分区,LV建立在卷组VG之上,文件系统建立在LV之上.
物理块PE(physical Extent) :创建LV时可以分配的最小存储单元 , 大小可以指定,默认为4MB
如上是从物理磁盘到lvm逻辑卷的创建过程及映射关系,lv01、lv02被创建后,通过device-mapper映射为逻辑块设备(块设备路径/dev/vg01/lv01、/dev/vg01/lv02),供文件系统使用,通过mkfs.ext4/dev/vg01/lv02可创建ext4文件系统.
元数据主要是两部分,PV headermetadata,位置一般是在PV的0~2048 sector中,从2048 sector开始是数据区域.
通过pvcreate创建pv时,会将pv header写入物理磁盘 , 位置一般是在磁盘的第二个sector(512B/sector),lvm扫描磁盘时,通过pv header来识别PV.
pv header主要信息包括,pv uuid、元数据位置和metadata位置.
pv header实例:
metadata记录的是vg和lv的配置信息,以ASCII码的方式写入metadata区域;vg和lv的每次配置变更,都会以追加的方式写入metadata区域,并打上时间戳,该区域写满后,新的变更记录会覆盖最早的一次记录. 进行vgscan时,猜测应该是通过读取最新一次的配置记录,进行激活.
vg配置信息,主要是包含的pv信息.
lv配置信息,主要是lv的起始位置和PE大小.
实例:
pvcreate /dev/vdb1
pvcreate /dev/vdb2
pvcreate /dev/vdb3
vgcreate /dev/vdb1 /dev/vdb2 /dev/vdb3
vgcreate wan /dev/vdb1 /dev/vdb2 /dev/vdb3
lvcreate -L 300M -n lv01 wan
将PV的前2048个sector通过dd拷贝出来 , 用cat查看如下.
假设我们有一块磁盘 /dev/sdb1 作为应用数据盘使用,以此为例创建lvm分区
先创建物理卷PV,命令:pvcreate/dev/sdb1
创建卷组VG,卷组命名为kylin,命令:vgcreatekylin/dev/sdb1
在VG中创建逻辑分区LV,命令:lvcreate -L 30G -n test kylin
创建逻辑分区后,进行格式化,然后便可以挂载使用.
mkfs.ext4/dev/kylin/test
mount/dev/kylin/test/data
假设我们在上述基础上,又获得一块磁盘/dev/sdc1进行扩容 , 将磁盘容量增加到LV分区/dev/kylin/test中,具体操作如下.
先创建物理卷PV,命令:pvcreate/dev/sdc1
将/dev/sdc1添加进VG kylin,命令:vgextend kylin /dev/sdc1
增加LV分区容量,命令:lvextend -L30G /dev/kylin/test
lvm卷组配置备份
lvm的配置信息默认在/etc/lvm/backup、/etc/lvm/archive/两个目录存在备份,当lvm元数据损坏,lvm卷组读取异常时,可通过备份文件进行恢复.
/etc/lvm/backup:保留了当前配置的备份
/etc/lvm/archive/:保留了每次配置更新前的备份
实例演示
逻辑卷/dev/wan/lv01
在/dev/wan/lv01上创建文件系统
挂载并创建文件
覆盖/dev/vdb1、/dev/vdb2的lvm元数据,并重启系统,vg已不能识别
通过pvcreate命令修复pv header 和metadata数据.
激活逻辑卷
挂载/dev/wan/lv01成功,说明成功修复
Linux里面pv是什么?pv命令 Pipe Viewer 的简称,由Andrew Wood 开发 。意思是通过管道显示数据处理进度的信息 。这些信息包括已经耗费的时间,完成的百分比(通过进度条显示),当前的速度,全部传输的数据,以及估计剩余的时间 。
如何在LINUX下使用LVMLVM是Logical Volume Manager(逻辑卷管理器)的简写,它为主机提供linux扫描pv命令了更高层次的磁盘存储管理能力 。LVM可以帮助系统管理员为应用与用户方便地分配存储空间 。在LVM管理下的逻辑卷可以按需改变大小或添加移除 。另外,LVM可以为所管理的逻辑卷提供定制的命名标识 。因此,使用LVM主要是方便了对存储系统的管理,增加了系统的扩展性 。
一、准备lvm环境
1.硬盘的准备
添加了一块硬盘/dev/hdb 。
准备了三个分区 , 方案如下linux扫描pv命令:容量为100M,仅为了实验准备 。
/dev/hdb1
/dev/hdb2
/dev/hdb3
2.转换分区类型为lvm卷
fdisk /dev/hdb
t转换为lvm卷类型
Device BootStartEndBlocksIdSystem
/dev/hdb11208982488eLinux LVM
/dev/hdb2209416982808eLinux LVM
/dev/hdb3417624982808eLinux LVM
然后w保存并且
#partprobe/*使用磁盘分区生效*/
二、lvm创建过程
1.从硬盘驱动器分区中创建物理卷(physical volumes-PV) 。
2.从物理卷中创建卷组(volume groups-VG)
3.从卷组中创建逻辑卷(logical volumes-LV),并分派逻辑卷挂载点,其中只有逻辑卷才可以写数据 。
lvm的最大的特点就是可以动态的调整分区的大小,并且可以随着分区容量的增长而增加磁盘空间的容量 。
LVM配置与创建
三、LVM的物理卷PV
1.相关命令
pvcreate创建PV
pvscan扫描PV
pvdisplay 显示PV
pvremove删除PV
partprobe
2.创建物理卷
如果以上容量不够,可以再添加其它分区到物理卷中 。
[root@redhat ~]# pvcreate /dev/hdb1 /dev/hdb2
Physical volume “/dev/hdb1″ successfully created
Physical volume “/dev/hdb2″ successfully created
[root@redhat ~]# pvscan
PV /dev/hdb1lvm2 [95.95 MB]
PV /dev/hdb2lvm2 [95.98 MB]
Total: 2 [191.92 MB] / in use: 0 [0] / in no VG: 2 [191.92 MB]
[root@redhat ~]# pvdisplay
— NEW Physical volume —
PV Name/dev/hdb1
VG Name
PV Size95.95 MB
AllocatableNO
PE Size (KByte)0
Total PE0
Free PE0
Allocated PE0
PV UUID2Ni0Tx-oeSy-zGUP-t7KG-Fh22-0BUi-iyPhhQ
— NEW Physical volume —
PV Name/dev/hdb2
VG Name
PV Size95.98 MB
AllocatableNO
PE Size (KByte)0
【linux扫描pv命令 linux扫描仪】Total PE0
Free PE0
Allocated PE0
PV UUID2XLXfY-V3L2-Mtsl-79U4-ovuJ-YaQf-YV9qHs
四、创建LVM的卷组VG
1.相关命令
vgcreate创建VG
vgscan扫描VG
vgdispaly
vgextend
vgreduce
vgchange
vgremove
2.创建逻辑卷VG
[root@redhat ~]# vgcreate vg0 /dev/hdb1 /dev/hdb2
Volume group “vg0″ successfully created
[root@redhat ~]# vgscan
Reading all physical volumes.This may take a while…
Found volume group “vg0″ using metadata type lvm2
[root@redhat ~]# vgdisplay
Linux查看日志文件写入速度的4种方法有时,我们需要查看某个文件的增长速度,如日志文件 , 以此来感受系统的负载情况,因为一般情况下 , 日志写入越快,说明系统负载越重 。
本文就来介绍下Linux中查看日志增长速度的几种方法,如下:
首先要介绍的是dd , 因为dd命令几乎所有主流发行版都自带,无需额外安装 , 如下:
如上 , 使用 tail -F 获取新写入的数据 , 然后用管道将数据交给dd,dd将数据拷贝到 /dev/null,其中 status=progress 是用来显示拷贝速度的,可见 , 我们日志的写入速度是 471 kB/s。
pv命令可以看做是带进度的cp,如下:
原理与dd类似,不过命令换成了pv 。
由于日志数据都是程序(如java)写入的,而在如下的伪文件中 , 存放着程序打开的文件信息,如下:
于是定期的读取这个offset就可以知道文件的写入速度了,这也是cv命令的实现原理,如下:
通过写一个小脚本,定期观察文件大?。?也可查看文件写入速度,如下:
通过watch再加上观察,也能大致看出速度,如下:
其实转念一想,如果我们在某个函数中打上日志,然后通过grep过滤出此日志 , 然后我们只要计算每秒输出的日志行数,这岂不就是函数执行的QPS了!
这里可以通过 151/15 计算出QPS是10,由于没有超过1000,所以看到的是0.0kB/s,如果使用pv命令 , 会更简单一些,如下:
linux扫描pv命令的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux扫描仪、linux扫描pv命令的信息别忘了在本站进行查找喔 。

    推荐阅读