我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

linux查看监控命令 查看linux监听哪些端口

几个常用的linux性能监控命令

1. sar

创新互联公司是专业的盘锦网站建设公司,盘锦接单;提供成都做网站、成都网站设计、成都外贸网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行盘锦网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

每两秒刷新一次, 总共5次

[root@dbhost01 ~]# sar 2 5

Linux 2.6.32-504.el6.x86_64 (dbhost01) 03/30/2018 _x86_64_ (4 CPU)

02:53:15 PM CPU %user %nice %system %iowait %steal %idle

02:53:17 PM all 0.66 0.00 1.72 0.66 0.00 96.96

02:53:19 PM all 1.34 0.00 3.35 0.80 0.00 94.51

02:53:21 PM all 0.79 0.00 1.59 1.45 0.00 96.17

02:53:23 PM all 0.40 0.00 2.00 0.80 0.00 96.80

02:53:25 PM all 0.66 0.00 1.85 0.79 0.00 96.70

Average: all 0.77 0.00 2.10 0.90 0.00 96.23

2. top

top -a 按照内存降序

[root@dbhost01 ~]# top -a

top - 15:00:54 up 6:04, 1 user, load average: 0.31, 0.19, 0.11

Tasks: 306 total, 1 running, 305 sleeping, 0 stopped, 0 zombie

Cpu(s): 7.8%us, 2.4%sy, 0.0%ni, 88.9%id, 0.8%wa, 0.0%hi, 0.1%si, 0.0%st

Mem: 4048972k total, 3848576k used, 200396k free, 134844k buffers

Swap: 4194300k total, 1788k used, 4192512k free, 1835360k cached

3. vmstat

vmstat用于显示虚拟内存,内核线程,磁盘,系统进程, CPU活动等统计信息。

需要安装sysstat工具。

[root@dbhost01 ~]# vmstat

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----

r b swpd free buff cache si so bi bo in cs us sy id wa st

2 0 1788 202508 135064 1835920 0 0 32 26 96 276 1 2 95 1 0

[root@dbhost01 ~]#

[root@dbhost01 ~]# vmstat 2 5

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----

r b swpd free buff cache si so bi bo in cs us sy id wa st

0 0 1788 202336 135068 1836000 0 0 32 26 97 276 1 2 95 1 0

0 0 1788 202624 135068 1836000 0 0 25 29 4012 6682 0 1 98 1 0

0 0 1788 202624 135072 1836004 0 0 57 87 4003 6685 0 1 98 1 0

1 0 1788 202508 135072 1836004 0 0 57 33 4402 7353 1 1 98 0 0

0 0 1788 202540 135076 1836004 0 0 33 47 4002 6674 0 1 98 1 0

4. lsof(list open files)

[root@dbhost01 ~]# lsof | grep 1521

certmonge 2348 root 16r FIFO 0,8 0t0 15212 pipe

certmonge 2348 root 18r FIFO 0,8 0t0 15218 pipe

gipcd.bin 2754 grid 109u unix 0xffff880139152180 0t0 36936 socket

5. tcpdump

tcpdump -i eth1

15:24:28.777779 IP dbhost01.ssh 192.168.2.82.50990: Flags [P.], seq 393080:393596, ack 105, win 148, options [nop,nop,TS val 22996360 ecr 2443327], length 516

15:24:28.777809 IP dbhost01.ssh 192.168.2.82.50990: Flags [P.], seq 393080:393596, ack 105, win 148, options [nop,nop,TS val 22996360 ecr 2443327], length 516

15:24:28.778976 IP dbhost01.ssh 192.168.2.82.50990: Flags [P.], seq 393596:393968, ack 105, win 148, options [nop,nop,TS val 22996361 ecr 2443327], length 372

15:24:28.779011 IP dbhost01.ssh 192.168.2.82.50990: Flags [P.], seq 393596:393968, ack 105, win 148, options [nop,nop,TS val 22996361 ecr 2443327], length 372

15:24:28.779013 IP 192.168.2.82.50990 dbhost01.ssh: Flags [.], ack 393968, win 16652, options [nop,nop,TS val 2443327 ecr 22996360], length 0

15:24:28.779481 IP dbhost02-priv.23602 dbhost01-priv.24271: UDP, length 556

15:24:28.779585 IP dbhost01-priv.24271 dbhost02-priv.23602: UDP, length 80

15:24:28.779909 IP dbhost01-priv.24271 dbhost02-priv.23602: UDP, length 80

15:24:28.780584 IP dbhost01.ssh 192.168.2.82.50990: Flags [P.], seq 393968:394724, ack 105, win 148, options [nop,nop,TS val 22996362 ecr 2443327], length 756

15:24:28.780590 IP dbhost01.ssh 192.168.2.82.50990: Flags [P.], seq 393968:394724, ack 105, win 148, options [nop,nop,TS val 22996362 ecr 2443327], length 756

15:24:28.780820 IP dbhost01-priv.24271 dbhost02-priv.23602: UDP, length 556

15:24:28.782232 IP dbhost01.ssh 192.168.2.82.50990: Flags [P.], seq 394724:395176, ack 105, win 148, options [nop,nop,TS val 22996364 ecr 2443327], length 452

15:24:28.782235 IP dbhost01.ssh 192.168.2.82.50990: Flags [P.], seq 394724:395176, ack 105, win 148, options [nop,nop,TS val 22996364 ecr 2443327], length 452

6.netstat

[root@dbhost01 ~]# netstat -a | grep oracle

unix 2 [ ACC ] STREAM LISTENING 31861 /var/tmp/.oracle/ora_gipc_sdbhost01gridmyracdb-clusterCRFM_SIPC

unix 2 [ ACC ] STREAM LISTENING 33820 /var/tmp/.oracle/sdbhost01DBG_LOGD

unix 2 [ ACC ] STREAM LISTENING 41177 /var/tmp/.oracle/sdbhost01DBG_EVMD

unix 2 [ ACC ] STREAM LISTENING 65106 /var/tmp/.oracle/sAevm

unix 2 [ ACC ] STREAM LISTENING 65108 /var/tmp/.oracle/sSYSTEM.evm.acceptor.auth

7. htop

需要安装

8. iostat

Total DISK READ: 91.48 K/s | Total DISK WRITE: 45.27 K/s

TID PRIO USER DISK READ DISK WRITE SWAPIN IO COMMAND

4071 be/4 oracle 30.18 K/s 0.00 B/s 0.00 % 4.69 % ora_lmon_orcl1

4117 be/4 oracle 60.36 K/s 15.09 K/s 0.00 % 3.69 % ora_ckpt_orcl1

2989 rt/4 grid 965.71 B/s 0.00 B/s 0.00 % 2.13 % ocssd.bin

4099 be/4 oracle 0.00 B/s 30.18 K/s 0.00 % 0.07 % ora_ckpt_test

2987 rt/4 grid 0.00 B/s 482.86 B/s 0.00 % 0.03 % ocssd.bin

2979 rt/3 root 0.00 B/s 3.77 K/s 0.00 % 0.00 % ologgerd -M -d /g01/grid/app/11.2.0/grid/crf/db/dbhost01

2980 rt/3 root 0.00 B/s 15.09 K/s 0.00 % 0.00 % ologgerd -M -d /g01/grid/app/11.2.0/grid/crf/db/dbhost01

9. iftop(流量监控工具)

linux查看日志命令

linux查看日志命令:

tail:

-n是显示行号;相当于nl命令;例子如下:

tail -100f test.log实时监控100行日志。

tail -n 10 test.log查询日志尾部最后10行的日志。

tail -n +10 test.log查询10行之后的所有日志。

head:

跟tail是相反的,tail是看后多少行日志;例子如下:

head -n 10 test.log查询日志文件中的头10行日志。

head -n -10 test.log查询日志文件除了最后10行的其他所有日志。

cat:

tac是倒序查看,是cat单词反写;例子如下:

cat -n test.log |grep "debug"查询关键字的日志。

命令功能:

tail用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用于查看日志文件后多少行日志信息。

使用tail -f可以查看动态日志文件,tail -f filename可以把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。

tail -n行数可以显示指定行数信息。

Linux常用性能诊断命令详解

top命令动态地监视进程活动与系统负载等信息。

使用示例:

效果如下图:

以上命令输出视图中分为两个区域,一个统计信息区,一个进程信息区。

统计信息区:

第一行信息依次为:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。

第二行信息依次为:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。

第三行信息依次为:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。

第四行信息依次为:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。

第五行信息依次为:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、预加载内存量。

进程信息区:

按 q 键退出监控页面。

uptime 用于查看系统的负载信息。

使用示例:

查看系统的负载信息。

效果如下图:

输出说明:

当前服务器时间:11:06:57

当前服务器运行时长:59 min

当前用户数:1 users

当前负载情况:load average: 0.00, 0.04, 0.08(分别取1min,5min,15min的均值)

free用于显示当前系统中内存的使用量信息。

命令语法: free [-bkmotV][-s 间隔秒数]

参数说明:

使用示例:

显示当前系统中内存的使用量信息。

效果如下图:

输出说明:

ifconfig命令用于获取网卡配置与网络状态等信息。

使用示例:

获取网卡配置与网络状态等信息。

效果如下图:

输出说明:

第一部分的第一行显示网卡状态信息。

eth0表示第一块网卡。

UP代表网卡开启状态。

RUNNING代表网卡的网线被接上。

MULTICAST表示支持组播。

第二行显示网卡的网络信息。

inet(IP地址):172.16.67.50。

netmask(掩码地址):255.255.0.0。

broadcast(广播地址):172.16.255.255。

RX表示接收数据包的情况,TX表示发送数据包的情况。

lo表示主机的回环网卡,是一种特殊的网络接口,不与任何实际设备连接,而是完全由软件实现。与回环地址(127.0.0.0/8 或 ::1/128)不同,回环网卡对系统显示为一块硬件。任何发送到该网卡上的数据都将立刻被同一网卡接收到。

Linux系统监控要用到哪些命令

记录一下自己常用的linux系统命令,方便以后查阅,发觉记忆越来越不行了

找到最耗CPU的java线程ps命令

命令:ps -mp pid -o THREAD,tid,time 或者 ps -Lfp pid

结果展示:

这个命令的作用,主要是可以获取到对应一个进程下的线程的一些信息。 比如你想分析一下一个java进程的一些运行瓶颈点,可以通过该命令找到所有当前Thread的占用CPU的时间,也就是这里的最后一列。

比如这里找到了一个TID : 30834 ,所占用的TIME时间最高。

通过 printf "%x\n" 30834 首先转化成16进制, 继续通过jstack命令dump出当前的jvm进程的堆栈信息。 通过Grep命令即可以查到对应16进制的线程id信息,很快就可以找到对应最耗CPU的代码快在哪。

简单的解释下,jstack下这一串线程信息内容:

"DboServiceProcessor-4-thread-295" daemon prio=10 tid=0x00002aab047a9800 nid=0x7d9b waiting on condition [0x0000000046f66000]

nid : 对应的linux操作系统下的tid,就是前面转化的16进制数字

tid: 这个应该是jvm的jmm内存规范中的唯一地址定位,如果你详细分析jvm的一些内存数据时用得上,我自己还没到那种程度,所以先放下

top命令

命令:top -Hp pid

结果显示:

和前面的效果一下,你可以实时的跟踪并获取指定进程中最耗cpu的线程。 再用前面的方法提取到对应的线程堆栈信息。

判断I/O瓶颈

mpstat命令

命令:mpstat -P ALL 1 1000

结果显示:

注意一下这里面的%iowait列,CPU等待I/O操作所花费的时间。这个值持续很高通常可能是I/O瓶颈所导致的。

通过这个参数可以比较直观的看出当前的I/O操作是否存在瓶颈

iostat命令

命令: iostat -m -x 1 1000

同样你可以观察对应的CPU中的%iowait数据,除此之外iostat还提供了一些更详细的I/O状态数据,比如比较重要的有:

avgqu-sz : The average queue length of the requests that were issued to the device. (磁盘队列的请求长度,正常的话2,3比较好。可以和cpu的load一样的理解)

await : The average time (in milliseconds) for I/O requests issued to the device to be served. (代表一个I/O操作从wait到完成的总时间)

svctm和%util都是代表处理该I/O请求花费的时间和CPU的时间比例。 判断是否瓶颈时,这两个参数不是主要的

r/s w/s 和 rMB/s wMB/s 都是代表当前系统处理的I/O的一些状态,前者是我们常说的tps,后者就是吞吐量。这也是评价一个系统的性能指标

pid命令

命令: pidstat -p pid -u -d -t -w -h 1 1000

结果显示:

相当实用的一个命令,可以基于当个进程分析对应的性能数据,包括CPU,I/O,IR , CS等,可以方便开发者更加精细化的观察系统的运行状态。不过pidstat貌似是在2.6内核的一些较新的版本才有,需要安装sysstat包。

ubuntu下,可以通过sudo apt-get install sysstat进行安装。

sar命令

命令:sar -x pid 1 1000

sar也可以指定对应的pid,关注固定的几个参数,没有pidstat那么强大。 看不到对应的I/O, IR等信息。

sar的功能可以覆盖mpstat , iostat的相关功能。

dstat命令

命令:dstat -y --tcp 1 1000

通过dstat --tcp可以比较方便的看到当前的tcp的各种状态,不需要每次netstat -nat去看

其他命令

netstat -natp : 查看对应的网络链接,关注下Recv-Q , Send-Q , State。

lsof -p pid : 查找对应pid的文件句柄

lsof -i : 80 : 查找对应端口被哪个进程占用

lsof /tmp/1.txt :查找对应文件被哪个进程占用

tcpdump / wireshark :抓包分析工具

jstat / jmap / jstack / jps 等一系列的java监控命令

最后

如果你想做一些性能调优的工作,一定要善于利用一些工具进行关注相应的状态。通过linux命令你可以比较方便的观测到CPU , I/O , network等一些比较外围的状态, 很多时候就已经可以解决大部分的问题。jvm内部的一些运行状态监控,得需要借助一些特有的工具进行细粒度的观测。


名称栏目:linux查看监控命令 查看linux监听哪些端口
路径分享:http://mswzjz.cn/article/doseejc.html

其他资讯