抓包工具,基于版本4

2019-10-07 作者:美高梅4688am   |   浏览(196)

原稿地址:

吞吐率(Requests per second)
  概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
  计算公式:总请求数 / 处理完成这些请求数所花费的时间,即
  Request per second = Complete requests / Time taken for tests
  QPS(每秒查询数)、TPS(每秒事务数)是吞吐量的常用量化指标,另外还有HPS(每秒HTTP请求数)。
  跟吞吐量有关的几个重要是:并发数、响应时间。
  QPS(TPS),并发数、响应时间它们三者之间的关系是:
  QPS(TPS)= 并发数/平均响应时间
  对于无并发的应用系统而言,吞吐量与响应时间成严格的反比关系,实际上此时吞吐量就是响应时间的倒数。前面已经说过,对于单用户的系统,响应时间(或者系统响应时间和应用延迟时间)可以很好地度量系统的性能,但对于并发系统,通常需要用吞吐量作为性能指标。 
 对于一个多用户的系统,如果只有一个用户使用时系统的平均响应时间是t,当有你n个用户使用时,每个用户看到的响应时间通常并不是n×t,而往往比n×t小很多(当然,在某些特殊情况下也可能比n×t大,甚至大很多)。
  这是因为处理每个请求需要用到很多资源,由于每个请求的处理过程中有许多不走难以并发执行,这导致在具体的一个时间点,所占资源往往并不多。也就是说在处理单个请求时,在每个时间点都可能有许多资源被闲置,当处理多个请求时,
  如果资源配置合理,每个用户看到的平均响应时间并不随用户数的增加而线性增加。实际上,不同系统的平均响应时间随用户数增加而增长的速度也不大相同,这也是采用吞吐量来度量并发系统的性能的主要原因。一般而言,吞吐量是一个比较通用的指标,两个具有不同用户数和用户使用模式的系统,
  如果其最大吞吐量基本一致,则可以判断两个系统的处理能力基本一致。 

并发连接数(The number of concurrent connections)
  概念:某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。

  并发用户数(The number of concurrent users,Concurrency Level)
  概念:要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。
  并发用户数是指系统可以同时承载的正常使用系统功能的用户的数量。与吞吐量相比,并发用户数是一个更直观但也更笼统的性能指标。实际上,并发用户数是一个非常不准确的指标,因为用户不同的使用模式会导致不同用户在单位时间发出不同数量的请求。
  一网站系统为例,假设用户只有注册后才能使用,但注册用户并不是每时每刻都在使用该网站,因此具体一个时刻只有部分注册用户同时在线,在线用户就在浏览网站时会花很多时间阅读网站上的信息,因而具体一个时刻只有部分在线用户同时向系统发出请求。
  这样,对于网站系统我们会有三个关于用户数的统计数字:注册用户数、在线用户数和同时发请求用户数。由于注册用户可能长时间不登陆网站,使用注册用户数作为性能指标会造成很大的误差。而在线用户数和同事发请求用户数都可以作为性能指标。
  相比而言,以在线用户作为性能指标更直观些,而以同时发请求用户数作为性能指标更准确些。 

用户平均请求等待时间(Time per request)
  计算公式:处理完成所有请求数所花费的时间/ (总请求数 / 并发用户数),即
  Time per request = Time taken for tests /( Complete requests / Concurrency Level)

服务器平均请求等待时间(Time per request: across all concurrent requests)
  计算公式:处理完成所有请求数所花费的时间 / 总请求数,即
  Time taken for / testsComplete requests
  可以看到,它是吞吐率的倒数。
  同时,它也=用户平均请求等待时间/并发用户数,即Time per request / Concurrency Level

QPS每秒查询率(Query Per Second) 
  每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。 (看来是类似于TPS,只是应用于特定场景的吞吐量)

 响应时间(RT) 
  响应时间是指系统对请求作出响应的时间。直观上看,这个指标与人对软件性能的主观感受是非常一致的,因为它完整地记录了整个计算机系统处理请求的时间。由于一个系统通常会提供许多功能,而不同功能的处理逻辑也千差万别,因而不同功能的响应时间也不尽相同,
    甚至同一功能在不同输入数据的情况下响应时间也不相同。所以,在讨论一个系统的响应时间时,人们通常是指该系统所有功能的平均时间或者所有功能的最大响应时间。当然,往往也需要对每个或每组功能讨论其平均响应时间和最大响应时间。 
  对于单机的没有并发操作的应用系统而言,人们普遍认为响应时间是一个合理且准确的性能指标。需要指出的是,响应时间的绝对值并不能直接反映软件的性能的高低,软件性能的高低实际上取决于用户对该响应时间的接受程度。对于一个游戏软件来说,响应时间小于100毫秒应该是不错的,
    响应时间在1秒左右可能属于勉强可以接受,如果响应时间达到3秒就完全难以接受了。而对于编译系统来说,完整编译一个较大规模软件的源代码可能需要几十分钟甚至更长时间,但这些响应时间对于用户来说都是可以接受的。

环境:VMware-Workstation-12-Pro,Windows-10,CentOS-6.9-x86_64,Xshell5

Linux日志查找方法

适用于测验,开垦,运行职员,用来查找Linux服务器难题的平常方法,比较实用,尽管有更加好的格局能够一块研讨,招待大神们来指引哈!!!

步入正题

《奔跑吧linux内核》3.2笔记,不足之处还望我们斟酌指正

linux下安装Oracle 平时都会修改/etc/security/limits.conf那几个文件,可是那其间的切实意思未必各种人都会,刚开端自个儿亦不是很清除,只精晓要修改,每一回安装依照文书档案配置就能够了。前些天观看一篇小说的牵线,特记录一下,加深一下清楚。

设置ab测量试验工具

着力介绍

tcpdump是Linux自带的抓包工具,能够详细察看Computer通讯中详尽报文内容,假设读者熟谙另一款
强硬的抓包工具wireshark,tcpdump也就是是wireshark的命令行版本。dump那些单词有垃圾堆,
倒垃圾的意思,在处理器法文中的含义是转存。

tcpdump官网:
This is the official web site of tcpdump, a powerful command-line packet analyzer;

抓包工具,基于版本4。查看本机tcpdump的版本

[root@as4k html]# tcpdump --version  
tcpdump version 4.1-PRE-CVS_2017_03_21  

tcpdump的风靡版本
Version: 4.9.2
Release Date: September 3, 2017

官方文书档案:
的教程,非常多大牌的博客都有借鉴此文的开始和结果。

第一步、通过Xshell登陆服务器

链接方法—找度娘、开辟同事#最棒是上下一心找度娘,自给自足安生乐业嘛
账号、密码—找本事特别

 图片 1

提议阅读博文理解linux cfs调度器

linux limits.conf 配置 limits.conf 文件实际是 Linux PAM(插入式认证模块,Pluggable Authentication Modules)中 pam_limits.so 的陈设文件,何况只针对于单个会话。

yum install httpd-tools -y

这是什么样鬼

TCPDUMP(8)                                                          TCPDUMP(8)  

NAME  
       tcpdump - dump traffic on a network  

SYNOPSIS  
       tcpdump [ -AdDefIJKlLnNOpqRStuUvxX ] [ -B buffer_size ] [ -c count ]  
               [ -C file_size ] [ -G rotate_seconds ] [ -F file ]  
               [ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ]  
               [ -Q|-P in|out|inout ]  
               [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]  
               [ -W filecount ]  
               [ -E spi@ipaddr algo:secret,...  ]  
               [ -y datalinktype ] [ -z postrotate-command ] [ -Z user ]  
               [ expression ]  

上边是tcpdump,man page里面包车型地铁从头到尾的经过,oh my god!这么多参数,本文当然不恐怕逐条介绍上面的剧情,
大家先直接通过一些简约的案例看看效果,然后交到一些宽广参数的用法。

其次步、步向log日志目录

选拔到另个指令:ll、cd

 图片 2

 

  过程差不离能够分成交互式进度批管理进程实时进度。对于差异的历程接纳差异的调解计策,目前Linux内核中暗许达成了4种调节战术,分别是deadline、realtime、CFS和idle,分别适用struct sched_class来定义调节类。

limits.conf的格式如下:

ab工具支持
  ab是Apache超文本传输合同(HTTP)的性质测量检验工具。其设计意图是摹写当前所设置的Apache的实践质量,首倘使显示你安装的Apache每秒能够管理多少个须求。

基本功案例

其三步、将包括关键字的日志保存到新的公文

使用到cat、grep命令

 图片 3

cat –n 日志名 |grep ‘关键字’  >保存文件名

  4种调解类经过next指针串联在一块儿,顾客空间程序能够应用调治计谋API函数(sched_setscheduler())来设定客户进度的调节计谋。

username|@groupname type resource limit

命令格式: ./ab [options] [http://]hostname[:port]/path
命令参数:
-A:指定连接服务器的基本的认证凭据;
-c:指定一次向服务器发出请求数;
-C:添加cookie;
-g:将测试结果输出为“gnuolot”文件;
-h:显示帮助信息;
-H:为请求追加一个额外的头;
-i:使用“head”请求方式;
-k:激活HTTP中的“keepAlive”特性;
-n:指定测试会话使用的请求数;
-p:指定包含数据的文件;
-q:不显示进度百分比;
-T:使用POST数据时,设置内容类型头;
-v:设置详细模式等级;
-w:以HTML表格方式打印结果;
-x:以表格方式输出时,设置表格的属性;
-X:使用指定的代理服务器发送请求;
-y:以表格方式输出时,设置表格属性。

参数很多,一般我们用 -c表示并发数  -n 表示请求数即可
如果只用到一个Cookie,那么只需键入命令:
ab -n 100 -C key=value http://test.com/
如果需要多个Cookie,就直接设Header:
ab -n 100 -H “Cookie: Key1=Value1; Key2=Value2” http://test.com/

观看DNS剖析情状

大家领略,Linux系统要想健康访问互连网,须要正确配置DNS深入分析,今后我们早已布署了Ali云的DNS
223.6.6.6,大家想看一下DNS深入分析是还是不是正规,就足以使用tcpdump来抓取DNS包,企图许多个xshell
窗口,依照如下格局操作

步骤1 tcpdump -n -i any port 53

图片 4

尽或许在root客商下采用tcpdump命令,-n代表绝不把IP地址深入分析成域名,-i表示抓取哪块网卡的通讯
数据包,any意味着狂妄一块,port是钦定要抓取数据包的端口,DNS服务办事在53端口上,实施完成之
后,大家切换到第3个窗口,实行步骤2

步骤2 ping -c3 baidu.com
-c3表示和ping次停下,那时候大家的管理器和百度产生的通信,窗口1的tcpdump就会监听到大家的通讯
数量,也等于所谓的抓包,切换成窗口1,看见的多寡差非常的少如下

图片 5

在上海教室中我们可看出本地192.168.56.11,端口42711经过向阿里云DNS服务器223.6.6.6,央求告知
baidu.com的IP地址是什么?Ali云的DNS服务器成功给了大家应对,因而可以作证,大家的DNS职业
正常。

只要抓取的DNS数据包,看起来向上面那样:

图片 6

从上海体育场合能够观望,我们总共发起了一遍DNS查询哀告,服务器才最终给我们再次回到了IP地址,那显然是不太健康的,
通过我们能够判明,此番网络卡慢的由来,应该出在DNS分析上。

上述便是接纳tcpdump抓包来简单决断网络通讯情形。

第四步、下载到本地

 图片 7

图片 8

sz:发送文书到地点
rz:发送文书到劳动器 #看样子了,就增加下哈

主题材料一:请简述对经过调节器的敞亮,早起Linux内核调治器(包罗O(N)和O(1))调治器是如何行事的?

username|@groupname:设置要求被界定的客户名,组名前边加@和顾客名分别。也得以用通配符*来做有所客户的范围。

使用举个例子:

抓取三个TCP包

首先大家清楚TCP贰回握手分别是:ACK,SYN-ACK,ACK。下边大家就在Linux中回顾搭建nginx服务器,
然后选用tcpdump抓取tcp包看下。

设置nginx服务并运转

yum install nginx -y  
/etc/init.d/nginx start  

下一场在windows浏览器中输入自个儿的IP地址,将会看出如下分界面

图片 9

在xshell中执行tcpdump -n -i eth0 port 80,eth0是自家眼下网卡的名号,然后在浏览器中刷新一下,
能够见见抓取到了之类内容

图片 10

能够看出,大家听得多了自然能详细讲出来的ACK,SYN-ACK,ACK一次握手的音信都出现了,表明我们TCP连接成功创设了。

决不太过纠结于抓包细节,事实上tcp左券蕴含很多的内容,不可能在此开展

第五步、使用文本编辑器查看xxx.txt文件

1,小编使用的是Notepad++文本编辑器来查看
2,使用连忙键Ctrl+f,举行时限筛选,如下:

图片 11*

 

那是日记查询艺术,首倘诺支持开拓用来定位特别难以查到的主题材料,降低意思的限量,加速化解难题的时光,将损失急速失降到最低…

  调治器是按一定的不二诀窍对经过张开调治的一种体制,需求为顺序普通进程尽只怕公平地分享CPU时间。

type:有 soft,hard 和 -,soft 指的是这几天系统生效的设置值。hard 注脚系统中所能设定的最大值。soft 的限制不可能比har 限制高。用 - 就注脚同不时间设置了 soft 和 hard 的值。

[root@c75 ~]# ab -n 1000 -c 1000 http://192.168.255.209/monitor
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.255.209 (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests


Server Software:        nginx/1.14.0
Server Hostname:        192.168.255.209
Server Port:            80

Document Path:          /monitor
Document Length:        185 bytes

Concurrency Level:      1000              //并发请求数
Time taken for tests:   2.252 seconds     //整个测试持续的时间
Complete requests:      1000              //完成的请求数
Failed requests:        0                 //失败的请求数
Write errors:           0                 //写入失败数
Non-2xx responses:      1000              //非2xx状态请求数
Total transferred:      386000 bytes      //传输的总字节数大小
HTML transferred:       185000 bytes      //传输的总文档字节数大小
Requests per second:    444.05 [#/sec] (mean)   //每秒处理的请求数
Time per request:       2252.008 [ms] (mean)    //每个请求花费的平均时间
Time per request:       2.252 [ms] (mean, across all concurrent requests)
Transfer rate:          167.39 [Kbytes/sec] received  //转移率

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        6   40  14.2     36      69   //创建TCP连接到服务器或者代理服务器所花费的时间
Processing:    40  738 722.9    302    2138   //写入缓冲区消耗+链路消耗+服务端消耗
Waiting:       11  546 595.8    293    1930   //写入缓冲区消耗+链路消耗+服务端消耗+读取数据消耗
Total:         45  778 733.0    344    2207   //总花费时间

Percentage of the requests served within a certain time (ms)
  50%    344
  66%    752
  75%   1668
  80%   1799
  90%   1957
  95%   2073
  98%   2161
  99%   2191
 100%   2207 (longest request)

tcpdump中最广泛的多少个参数

-i 钦点要抓取数据包的网卡名称

tcpdump -i eth0 # 抓取eth0网卡的数据包  

-c 钦定抓取包的个数

tcpdump -i eth0 -c 10 # 只抓取10个包  

-w 把抓取到的数量贮存到文件中供未来剖判

# tcpdump -i eth0 -c 10 -w my-packets.pcap  
# file my-packets.pcap   
my-packets.pcap: tcpdump capture file ....  

能够看见,我们保留的my-packets.pcap是一种奇特文件,直接利用vim是无计可施查看的,能够把
该文件获得windows下,使用wireshark查看,效果如下

图片 12

-n 不深入分析ip,私下认可会将ip分析成域名
点名过滤端口(port)和主机名(host)

tcpdump -n -i eth0 port 80  
tcpdump -n -i eth0 host baidu.com  
tcpdump -n -i eth0 host baidu.com and port 80  

  O(N)调节器宣布与1995年,从就绪队列中相比较全部进度的优先级,然后选用叁个高高的优先级的长河作为下四个调整进度。每二个历程有贰个定位时间片,当进度时间片使用完事后,调解器会接纳下叁个调节进程,当有着进度都运作一回后再重新分配时间片。那么些调整器选拔下二个调解进度前供给遍历整个就绪队列,成本O(N)时间。

resource:

参照他事他说加以考察资料

法定权威教程

漫画格局介绍tcpdump,特别有趣

  O(1)调整器用于Linux2.6.23根本以前,它为各样CPU维护一组经过优先级队列,每种优先级多少个类别,那样在增选下多少个经过时,只要查询优先级队列相应的位图就能够见道哪位队列中有就绪进度,查询时间常数为O(1)。

core - 限制内核文件的分寸

题目二:请简述进度优先级、nice和权重之间的涉嫌。

date - 最大数目大小

  内核使用0~139的数值表示经过的优先级,数值越低优先级越高。优先级0~99给实时进程使用,100~139给常常进程使用。在客户空间由一个观念的变量nice值映射到平日进度的优先级(100~139)。

fsize - 最大文件大小

  nice值从-20~19,进度默许的nice值为0。那可以领略为38个阶段,nice值越高,则优先级越低,反之亦然。(nice每变化1,则对应的进度获得CPU的时光就改成百分之十)。

memlock - 最大锁定内部存款和储蓄器地址空间

  权重音讯即为调治实体的权重,为了计算方便,内核约定nice值为0的权重值为1024,其余的nice值对应相应的权重值能够通过查表的主意来得到,表即为prio_to_weight。

nofile - 展开文件的最大数据

标题三:请简述CFS调节器是怎样行事的。

rss - 最大长久设置大小

  CFS调解器丢弃在此以前固定时期片和固化调整周期的算法,选取进程权重值的百分比来量化和总计实际运作时刻。引进虚构石英钟的定义,每一个进度的设想时间是实际运作时刻相对nice值为0的权重的比例值。进程依据各自不相同的速率比在物理时钟节拍内发展。nice值小的长河,优先级高且权重大,其虚拟机械钟比真正石英钟跑得慢,不过足以获取比非常多的运作时刻;反之,nice值大的经过,优先级低,权重也低,其设想石英钟比真正机械钟跑得快,获得比比较少的运营时刻。CFS调解器总是挑三拣四虚拟石英钟跑得慢的进度,类似二个多级自动变速箱,nice值为0的进程是标准齿轮,其余各类进度在分歧变速比下相互追逐,进而实现公正公平。

stack - 最大栈大小

标题四:CFS调解器中的vruntime是怎么计算的?

cpu - 以分钟为单位的最多 CPU 时间

  vruntime=(delta_exec*nice_0_weight)/weight。其中,delta_exec为实际运作时刻,nice_0_weight为nice为0的权重值,weight代表该过程的权重值。在update_curr()函数中,达成了该值的测算,此时,为了计算高效,将计算方法改为了乘法和移动vruntime=(delta_exec*nice_0_weight*inv_weight)>>shift,其中inv_weight=2^32/weight,是预先计算好寄存在prio_to_wmult中的。

noproc - 进程的最大数目

难点五:vruntime是何时更新的?

as - 地址空间限制

  创造新进度,出席就绪队列,调解tick等都会更新当前vruntime值。

maxlogins - 此客商同意登陆的最大数量

标题六:CFS调解器中的min_vruntime有哪些成效?

要使 limits.conf 文件配置生效,必须求保管 pam_limits.so 文件被出席到起步文件中。查看 /etc/pam.d/login 文件中有:

  min_vruntime在CFS就绪队列数据结构中,单步递增,用于追踪该就绪队列红黑树中幽微的vruntime。

session required /lib/security/pam_limits.so

标题七:CFS调整器对新创建的历程和刚唤醒的历程有什么看护?

按下边说的,能够用ulimit -n 32768设置最大描述符,不过只对当下对话有用,何况要root,那几个不好办

  对于睡觉进程,其vruntime在睡眠时期不抓实,在提醒后只要还用原本的vruntime值,会进行报复性满载运维,所以要核对vruntime,具体在enqueue_entity()函数中,计算公式为vruntime+=min_vruntime,vruntime=MAX(vruntime, min_vruntime-sysctl_sched_lantency/2)。

抑或修改/etc/security/limits.conf,但要重启

  对于新创制的长河,需求加上叁个调治周期的虚构是光阴(sched_vslice())。首先在task_fork_fair()函数中,place_entity()扩大了调节周期的杜撰时间,也等于检查办理,se->vruntime=sched_vslice()。接着新历程在累加到就绪队列时,wake_up_new_task()->activate_task()->enqueue_entity()函数里,se->vruntime+=cfs_rq->min_vruntime。

另外,没查到linux毕竟最大描述符有未有限制,别的多少个限制要不要改

主题材料八:怎么着总结普通进程的平分负载load_avg_contrib?runnable_avg_sum和runnable_avg_period分别表示了哪些意思?

本文由美高梅4688am发布于美高梅4688am,转载请注明出处:抓包工具,基于版本4

关键词: