最近项目上部署环境后系统访问速度极慢,于是检查了一下服务器的配置,主要用到了以下的命令
查看服务器的CPU信息
查看物理的CPU个数cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
查看物理CPU中core的个数(即核数)cat /proc/cpuinfo | grep "cpu cores" | uniq
查看服务器的内存情况
[app@gj-app /]$ free -h
total used free shared buff/cache available
Mem: 30G 13G 6.8G 1.6G 10G 15G
Swap: 8.0G 436K 8.0G
返回的参数的主要含义:
total 内存总数
used 已经使用的内存数
free 空闲的内存数
shared 多个进程共享的内存总额
buffers Buffer Cache和cached Page Cache 磁盘缓存的大小
-buffers/cache (已用)的内存数:used - buffers - cached
+buffers/cache(可用)的内存数:free + buffers + cached
可用的memory=free memory+buffers+cached
服务器的磁盘使用情况
查看磁盘分区情况fdisk – l
查看当前磁盘使用情况
[app@gj-app /]$ df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root 50G 23G 28G 46% /
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 188K 16G 1% /dev/shm
tmpfs 16G 1.6G 14G 11% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/xvda1 1014M 173M 842M 17% /boot
/dev/mapper/cl-home 21G 97M 21G 1% /home
tmpfs 3.1G 8.0K 3.1G 1% /run/user/0
tmpfs 3.1G 0 3.1G 0% /run/user/1001
查看硬盘性能
[app@gj-app /]$ iostat -x 1 10
Linux 3.10.0-514.el7.x86_64 (gj-app) 2019年10月26日 _x86_64_ (8 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.31 0.00 0.14 0.00 0.03 99.52
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvda 0.00 0.18 0.01 2.03 0.31 15.66 15.60 0.00 1.69 9.24 1.65 0.27 0.05
dm-0 0.00 0.00 0.01 2.08 0.30 15.62 15.20 0.00 1.86 9.43 1.82 0.26 0.05
dm-1 0.00 0.00 0.00 0.00 0.00 0.00 8.45 0.00 4.11 0.47 4.34 0.27 0.00
dm-2 0.00 0.00 0.00 0.03 0.00 0.04 2.50 0.00 0.33 8.18 0.32 0.24 0.00
avg-cpu: %user %nice %system %iowait %steal %idle
0.25 0.00 0.00 0.12 0.12 99.50
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvda 0.00 0.00 1.00 0.00 8.00 0.00 16.00 0.01 10.00 10.00 0.00 10.00 1.00
dm-0 0.00 0.00 1.00 0.00 8.00 0.00 16.00 0.01 10.00 10.00 0.00 10.00 1.00
dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.00 0.00 0.00 100.00
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
查看系统内核
[app@gj-app /]$ uname -a
Linux gj-app 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
查看服务器使用的Linux发行版的名称、版本号及描述信息等
lsb_release -a
查看服务器的平均负载
感觉到系统压力较大时用可top或uptime查看下服务器的平均负载,uptime还可以查看linux服务器已经多少天未重启。
查看系统整体性能情况
[app@gj-app /]$ vmstat 1 2
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 436 7113444 84 11478856 0 0 0 2 0 0 0 0 100 0 0
0 0 436 7113444 84 11478856 0 0 0 0 1071 2048 0 0 100 0 0
参数介绍:mstat 1 2第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数
返回结果介绍:
r 表示运行队列,一般负载超过了3就比较高;
b表示阻塞的进程;swpd 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了;
free 空闲的物理内存的大小;
buff Linux/Unix系统是用来存储;
cachecache直接用来记忆我们打开的文件,给文件做缓冲,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用;
si 每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉;
so 每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上;
bi 设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备;
bo 块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整;
in 每秒CPU的中断次数,包括时间中断;
cs 每秒上下文切换次数,值要越小越好,过大要考虑调低线程或者进程的数目;
us 用户CPU时间
sy 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。
id 空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。
wt 等待IO CPU时间。
常用指令
系统
# uname -a # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量
资源
# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh <目录名> # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载
磁盘和分区
# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况
网络
# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息
进程
# ps -ef # 查看所有进程
# top # 实时显示进程状态
用户
# w # 查看活动用户
# id <用户名> # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务
服务
# chkconfig --list # 列出所有系统服务
# chkconfig --list | grep on # 列出所有启动的系统服务
程序
# rpm -qa # 查看所有安装的软件包
常用命令整理如下:
查看主板的序列号: dmidecode | grep -i ’serial number’
用硬件检测程序kuduz探测新硬件:service kudzu start ( or restart)
查看CPU信息:cat /proc/cpuinfo [dmesg | grep -i 'cpu'][dmidecode -t processor]
查看内存信息:cat /proc/meminfo [free -m][vmstat]
查看板卡信息:cat /proc/pci
查看显卡/声卡信息:lspci |grep -i ‘VGA’[dmesg | grep -i 'VGA']
查看网卡信息:dmesg | grep -i ‘eth’[cat /etc/sysconfig/hwconf | grep -i eth][lspci | grep -i 'eth']
<!--more-->
查看PCI信息:lspci (相比cat /proc/pci更直观)
查看USB设备:cat /proc/bus/usb/devices
查看键盘和鼠标:cat /proc/bus/input/devices
查看系统硬盘信息和使用情况:fdisk & disk – l & df
查看各设备的中断请求(IRQ):cat /proc/interrupts
查看系统体系结构:uname -a
查看及启动系统的32位或64位内核模式:isalist –v [isainfo –v][isainfo –b]
dmidecode查看硬件信息,包括bios、cpu、内存等信息
测定当前的显示器刷新频率:/usr/sbin/ffbconfig –rev \?
查看系统配置:/usr/platform/sun4u/sbin/prtdiag –v
查看当前系统中已经应用的补丁:showrev –p
显示当前的运行级别:who –rH
查看当前的bind版本信息:nslookup –class=chaos –q=txt version.bind
dmesg | more 查看硬件信息
lspci 显示外设信息, 如usb,网卡等信息
lsnod 查看已加载的驱动
lshw
psrinfo -v 查看当前处理器的类型和速度(主频)
prtconf -v 打印当前的OBP版本号
iostat –E 查看硬盘物理信息(vendor, RPM, Capacity)
prtvtoc /dev/rdsk/c0t0d0s 查看磁盘的几何参数和分区信息
df –F ufs –o i 显示已经使用和未使用的i-node数目
isalist –v
对于“/proc”中文件可使用文件查看命令浏览其内容,文件中包含系统特定信息:
Cpuinfo 主机CPU信息
Dma 主机DMA通道信息
Filesystems 文件系统信息
Interrupts 主机中断信息
Ioprots 主机I/O端口号信息
Meninfo 主机内存信息
Version Linux内存版本信息
文章参考互联网,可以参考
LINUX查看硬件配置命令