linux-系统性能监控

查看硬件
dmidecode命令
查看服务器型号:dmidecode | grep 'Product Name'
查看主板的序列号:dmidecode |grep 'Serial Number'
查看系统序列号:dmidecode -s system-serial-number
查看内存信息:dmidecode -t memory
查看OEM信息:dmidecode -t 11
/proc/*文件系统

proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。它的目录结构如下:

目录名称 目录内容
apm 高级电源管理信息
cmdline 内核命令行
Cpuinfo 关于Cpu信息
Devices 可以用到的设备(块设备/字符设备)
Dma 使用的DMA通道
Filesystems 支持的文件系统
Interrupts 中断的使用
Ioports I/O端口的使用
Kcore 内核核心印象
Kmsg 内核消息
Ksyms 内核符号表
Loadavg 负载均衡
Locks 内核锁
Meminfo 内存信息
Misc 杂项
Modules 加载模块列表
Mounts 加载的文件系统
Partitions 系统识别的分区表
Rtc 实时时钟
Slabinfo Slab池信息
Stat 全面统计状态表
Swaps 对换空间的利用情况
Version 内核版本
Uptime 系统正常运行时间

通过修改/proc 文件系统中的文件,我们可以修改主机名。很多其他可配置的文件存在于/proc/sys/kernel/。这里不可能列出所有这些文件,读者可以自己去这个目录查看以得到更多细节信息。
$ echo “new-machinename” > /proc/sys/kernel/hostname
另一个可配置的目录是/proc/sys/net。这个目录中的文件可以用于修改机器/网络的网络属性。比如,简单修改一个文件,你可以在网络上瘾藏匿的计算机。
$ echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
查看路由功能是否开启
cat /proc/sys/net/ipv4/ip_forward

优化内核参数

vim /etc/sysctl.conf
#For more information, see sysctl.conf(5) and sysctl.d(5).
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

vm.swappiness = 0
net.ipv4.neigh.default.gc_stale_time=120

#see details in https://help.aliyun.com/knowledge_detail/39428.html
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.all.arp_announce=2

#see details in https://help.aliyun.com/knowledge_detail/41334.html
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_synack_retries = 2
kernel.sysrq=1
sysctl -p

查看cpu/进程
top命令(cpu、内存)
  • 多核CPU监控
    在top基本视图中,按键盘数字“1”,可监控每个逻辑CPU的状况

  • 统计信息区

前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:

10:37:35	当前时间
up 25 days, 17:29	系统运行时间,格式为时:分
1 user	当前登录用户数
load average: 0.00, 0.02, 0.05	系统负载,即任务队列的平均长度。
三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:

Tasks: 104 total	进程总数
1 running	正在运行的进程数
103 sleeping	睡眠的进程数
0 stopped	停止的进程数
0 zombie	僵尸进程数
Cpu(s):  0.1%us	用户空间占用CPU百分比
0.0%sy	内核空间占用CPU百分比
0.0%ni	用户进程空间内改变过优先级的进程占用CPU百分比
99.9%id	空闲CPU百分比
0.0%wa	等待输入输出的CPU时间百分比
0.0% hi	 
0.0% si	 
0.0%st	 

最后两行为内存信息。内容如下:

Mem:   2067816k total	物理内存总量
2007264k used	使用的物理内存总量
60552k free	空闲内存总量
73752k buffers	用作内核缓存的内存量
Swap:   524284k total	交换区总量
315424k used	使用的交换区总量
208860k free	空闲交换区总量
625832k cached	缓冲的交换区总量。
内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,
该数值即为这些内容已存在于内存中的交换区的大小。
相应的内存再次被换出时可不必再对交换区写入。
  • 进程信息区
    统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。
序号	列名	含义
a	PID	进程id
b	PPID	父进程id
c	RUSER	Real user name
d	UID	进程所有者的用户id
e	USER	进程所有者的用户名
f	GROUP	进程所有者的组名
g	TTY	启动进程的终端名。不是从终端启动的进程则显示为 ?
h	PR	优先级
i	NI	nice值。负值表示高优先级,正值表示低优先级
j	P	最后使用的CPU,仅在多CPU环境下有意义
k	%CPU	上次更新到现在的CPU时间占用百分比
l	TIME	进程使用的CPU时间总计,单位秒
m	TIME+	进程使用的CPU时间总计,单位1/100秒
n	%MEM	进程使用的物理内存百分比
o	VIRT	进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p	SWAP	进程使用的虚拟内存中,被换出的大小,单位kb。
q	RES	进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
r	CODE	可执行代码占用的物理内存大小,单位kb
s	DATA	可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
t	SHR	共享内存大小,单位kb
u	nFLT	页面错误次数
v	nDRT	最后一次写入到现在,被修改过的页面数。
w	S	进程状态。
D=不可中断的睡眠状态
R=运行
S=睡眠
T=跟踪/停止
Z=僵尸进程
x	COMMAND	命令名/命令行
y	WCHAN	若该进程在睡眠,则显示睡眠中的系统函数名
z	Flags	任务标志,参考 sched.h
默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。
uptime命令
w命令
jobs命令

将但前的程序挂载
ctrl + z
1 jobs查看已挂载的程序,不用携带任何参数
jobs
2 jobs杀死后台已经禁止的程序
kill %num
ps 查看所有进程
kill num杀死后台进程
3 fg 将后台停止的进程调至前台继续运行
使用 jobs 查看那些程序停止了
fg %num
4 bg 将后台停止的进程在后台继续运行
bg %num

查看内存

优化使用虚拟内存

cat /proc/sys/vm/swappiness#默认30
echo 0 > /proc/sys/vm/swappiness
free -m

在这里插入图片描述

1,2表示1,2行的内容

total1:表示物理,内存总量

used1:总计分配给缓存(包含Buffer和cache)使用的数量,但其中可能部分缓存并未实际使用

free1:未被分配的内存

shared1:共享内存,一般系统不会用到,这里也不讨论

buffers1:系统分配但未被使用的buffers数量

cached1:系统分配但未被使用的cache数量

used2:实际使用的buffers和cache总量,也是实际使用的内存总量

free2:未被使用的Buffers和cache和未被分配的内存之和,这就是系统当前实际可用内存。

cache是cpu和内存之间的,buffer是内存和磁盘之间的,buffer是即将要写入磁盘的,而cache是被从磁盘中读出来的

查看磁盘
df -Th命令
-h更具目前磁盘空间和使用情况 以更易读的方式显示
-H根上面的-h参数相同,不过在根式化的时候,采用1000而不是1024进行容量转换
-k以单位显示磁盘的使用情况
-l显示本地的分区的磁盘空间使用率,如果服务器nfs了远程服务器的磁盘,那么在df上加上-l后系统显示的是过滤nsf驱动器后的结果
-i显示inode的使用情况。linux采用了类似指针的方式管理磁盘空间影射.这也是一个比较关键应用
iostat

yum install sysstat -y

查看网络
iptraf(监控流量)
netstat
lsof
nc,nmap
全能命令
nmon命令

yum install nmon -y #安装

glances命令
dstat命令
发布了10 篇原创文章 · 获赞 4 · 访问量 289

猜你喜欢

转载自blog.csdn.net/qq_45206551/article/details/104531720