性能测试分析与性能调优诊断--史上最全的服务器性能分析监控调优篇 (8)

l         lsof –i:@ip 可以列出某个指定ip上的所有网络连接通讯,例如执行lsof -i@192.168.1.221 命令可以查看到192.168.1.221这个ip上的所有的网络连接通讯

 

性能测试分析与性能调优诊断--史上最全的服务器性能分析监控调优篇

 

 

l         lsof –i 网络协议 可以列出某个指定协议下的网络连接信息

lsof –i tcp 命令可以列出tcp下所有的网络连接信息

性能测试分析与性能调优诊断--史上最全的服务器性能分析监控调优篇

 

 

lsof -i tcp:80 命令可以列出tcp下80端口所有的网络连接信息

性能测试分析与性能调优诊断--史上最全的服务器性能分析监控调优篇

 

 

lsof –i udp 命令可以列出udp下所有的网络连接信息

性能测试分析与性能调优诊断--史上最全的服务器性能分析监控调优篇

 

 

lsof -i udp:323 命令可以列出udp下323端口所有的网络连接信息

性能测试分析与性能调优诊断--史上最全的服务器性能分析监控调优篇

 

 

1.1.4    如何通过free看懂内存的真实使用

 

free命令是linux操作系统中对内存进行查看和监控的一个常用命令,我们可以直接执行free命令来看下可以获取到操作系统内存使用的哪些数据

 

性能测试分析与性能调优诊断--史上最全的服务器性能分析监控调优篇

 

 

默认直接执行free 获取到的内存数据的单位都是k,Mem这一行展示的是物理内存的使用情况,Swap这一行展示的是内存交换区(通常也叫虚拟内存)的整体使用情况。

l         total列展示的为系统总的可用物理内存和交换区的大小,单位为k

l         used列展示的为已经被使用的物理内存和交换区的大小,单位为k

l         free列展示的为还有多少物理内存和交换区没有被使用,单位为k

l         shared 列展示的为共享区占用的物理内存大小,单位为k

l         buff/cache 列展示的为被缓冲区和page高速缓存合计使用的物理内存大小,单位为k

buff在操作系统中指的是缓冲区,是负责磁盘块设备的读写缓冲,会直接占用物理内存。

cache 指的是操作系统中的 page cache(也就是通常所说的高速缓存),高速缓存是linux内核实现的磁盘缓存,可以减少内核对磁盘的I/O读写操作,会将磁盘中的数据缓存到物理内存中,这样对磁盘的访问就会变为对物理内存的访问,从而大大提高了读写速度。cache 有一点类似应用程序中使用redis来做缓存一样,把一些经常需要访问的数据存储到内存中来提高访问的速度。

l         available 列展示的为还可以被使用的物理内存的大小,单位为k。通常情况下,available 的值等于free+ buff/cache ,linux内核为了提高磁盘读写的速度会使用一部分物理内存去缓存经常被使用的磁盘数据,所以buffer 和 cache对于Linux操作系统的内核来说都属于已经被使用的内存,而free列展示的是真实未被任何地方使用的物理内存,但是如果物理内存已经不够用并且应用程序恰巧又需要使用内存时内核就会从 buffer 和 cache 中回收内存来满足应用程序的使用,也就是说buffer 和 cache占用的内存是可以被内核释放的。

1.1.5   网络流量如何监控

备注:作者的原创文章,转载须注明出处。原创文章归作者所有,欢迎转载,但是保留版权。对于转载了博主的原创文章,不标注出处的,作者将依法追究版权,请尊重作者的成果。

本文作者:张永清  文章选自 作者2020年初即将出版的《性能测试分析与性能诊断调优核心思想》一书。

在linux中,可以使用iftop命令来对服务器网卡的网络流量进行监控,iftop并不是linux操作系统中本身就有的工具,需要单独进行安装,可以从~pdw/iftop/ 网站中下载iftop工具。

 

性能测试分析与性能调优诊断--史上最全的服务器性能分析监控调优篇

 

 

下载完成后,首先执行./configure 命令进行安装前的自动安装配置检查

[root@localhost iftop-1.0pre4]# ./configure

checking build system type... x86_64-unknown-linux-gnu

checking host system type... x86_64-unknown-linux-gnu

checking target system type... x86_64-unknown-linux-gnu

checking for a BSD-compatible install... /usr/bin/install -c

checking whether build environment is sane... yes

checking for a thread-safe mkdir -p... /usr/bin/mkdir -p

checking for gawk... gawk

checking whether make sets $(MAKE)... yes

checking whether make supports nested variables... yes

checking for gcc... gcc

checking whether the C compiler works... yes

checking for C compiler default output file name... a.out

checking for suffix of executables...

checking whether we are cross compiling... no

checking for suffix of object files... o

checking whether we are using the GNU C compiler... yes

checking whether gcc accepts -g... yes

checking for gcc option to accept ISO C89... none needed

checking whether gcc understands -c and -o together... yes

checking for style of include used by make... GNU

checking dependency style of gcc... gcc3

checking how to run the C preprocessor... gcc -E

checking for grep that handles long lines and -e... /usr/bin/grep

checking for egrep... /usr/bin/grep -E

checking for ANSI C header files... yes

checking for sys/types.h... yes

checking for sys/stat.h... yes

checking for stdlib.h... yes

checking for string.h... yes

checking for memory.h... yes

checking for strings.h... yes

checking for inttypes.h... yes

checking for stdint.h... yes

checking for unistd.h... yes

checking sgtty.h usability... yes

checking sgtty.h presence... yes

checking for sgtty.h... yes

checking sys/ioctl.h usability... yes

checking sys/ioctl.h presence... yes

checking for sys/ioctl.h... yes

checking sys/time.h usability... yes

checking sys/time.h presence... yes

checking for sys/time.h... yes

checking sys/sockio.h usability... no

checking sys/sockio.h presence... no

checking for sys/sockio.h... no

checking termio.h usability... yes

checking termio.h presence... yes

checking for termio.h... yes

checking termios.h usability... yes

checking termios.h presence... yes

checking for termios.h... yes

checking for unistd.h... (cached) yes

checking for an ANSI C-conforming const... yes

checking for size_t... yes

checking whether time.h and sys/time.h may both be included... yes

checking sys/dlpi.h usability... no

checking sys/dlpi.h presence... no

checking for sys/dlpi.h... no

checking for regcomp... yes

checking for select... yes

checking for strdup... yes

checking for strerror... yes

checking for strspn... yes

checking for library containing socket... none required

checking for library containing log... -lm

checking for gethostbyname... yes

checking for library containing inet_aton... none required

checking for library containing inet_pton... none required

checking for inet_aton... yes

checking for inet_pton... yes

checking size of u_int8_t... unknown type

checking size of u_int16_t... unknown type

checking size of u_int32_t... unknown type

checking for stdint.h... (cached) yes

checking for library containing getnameinfo... none required

checking for library containing gethostbyaddr_r... none required

checking how to call gethostbyaddr_r... 8 args, int return

checking gethostbyaddr_r usability... yes

checking where to find pcap.h... /include

checking for pcap_open_live in -lpcap... yes

checking pcap.h usability... yes

checking pcap.h presence... yes

checking for pcap.h... yes

checking for a curses library containing mvchgat... -lcurses

checking POSIX threads compilation... CFLAGS= and LIBS=-lpthread

checking POSIX threads usability... yes

checking if we need to enable promiscuous mode by default... no

checking that generated files are newer than configure... done

configure: creating ./config.status

config.status: creating Makefile

config.status: creating config/Makefile

config.status: creating config.h

config.status: executing depfiles commands

configure: WARNING:

******************************************************************************

 

This is a pre-release version.  Pre-releases are subject to limited

announcements, and therefore limited circulation, as a means of testing

the more widely circulated final releases.

 

Please do not be surprised if this release is broken, and if it is broken, do

not assume that someone else has spotted it.  Instead, please drop a note on

the mailing list, or a brief email to me on pdw@ex-parrot.com

 

Thank you for taking the time to be the testing phase of this development

process.

 

Paul Warren

 

******************************************************************************

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwyyjw.html