top系统监控

top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。

[root@centos-python ~]# top
top - 22:33:12 up 9 min, 2 users, load average: 0.00, 0.07, 0.09
Tasks: 366 total, 2 running, 364 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
KiB Mem: 2035624 total, 333488 used, 1702136 free, 900 buffers
KiB Swap: 2113532 total, 0 used, 2113532 free. 110984 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
...
...

头部信息字段解释:

  • top - 22:33:12    当前系统时间
  • up 9 min       系统已经运行了9分钟
  • 2 user        当前有2个用户登录
  • load average: 0.00, 0.07, 0.09  CPU负载,即单位时间内处理的任务数量
    • 第一个浮点数表示1分钟内的平均负载
    • 第二个浮点数表示5分钟内的平均负载
    • 第三个浮点数表示15分钟内的平均负载
  • Tasks: 366 total      总进程数
  • 2 running      正在运行的进程数
  • 364 sleeping     睡眠的进程数,即等待中的进程
  • 0 stopped        停止的进程数
  • 0 zombie       冻结进程数,即僵尸进程,主进程已经结束,而子进程仍占用内存
  • Cpu(s)        CPU的利用率,CPU真正处在工作状态的时间
    • 0.0us  用户空间占用CPU百分比
    • 0.3sy  内核空间占用CPU百分比
    • 0.0ni  用户进程空间内改变过优先级的进程占用CPU百分比
    • 99.3id  空闲CPU百分比
    • 0.0wa  等待输入输出的CPU时间百分比
    • 0.0hi  硬中断占用CPU的百分比
    • 0.3si  软中断占用CPU的百分比
    • 0.0st  被偷走的CPU占用,当物理机内有虚拟机运行时候才会出现
  • KiB Mem:   内存信息(内存监控详细说明)
    • total  总共的内存
    • used  已使用内存
    • free  空闲内存
    • buffers  要往磁盘写但还没写进去的内存空间
    • cached Mem  存放从硬盘中调用的数据的内存空间
  • Swap:  交换空间信息
    • total  交换区总量
    • used  使用的交换区
    • free  空闲交换区总量

free内存监控

可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。

内存:主要就是用来往外分buffers和cache

  buffers:指的是用来存放从内存中要往硬盘中写的数据但是还没有写入的内存空间,用来缓解内存和硬盘之间的速度差

  cached:指的是用来存放从硬盘中调用的数据的内存空间,CPU从这里面提取数据,用来缓解内存和CPU间的速度差

命令说明(常用):

  -h  以可读性较高的方式来显示信息

  -b  以Byte为单位显示内存使用情况

  -k  以KB为单位显示内存使用情况

  -m  以MB为单位显示内存使用情况

  -s<间隔秒数>  持续观察内存使用状况

CentOS7.0版本

[root@centos-python ~]# free -h
total used free shared buffers cached
Mem: 1.9G 324M 1.6G 8.8M 900K 108M
-/+ buffers/cache: 215M 1.7G
Swap: 2.0G 0B 2.0G

字段解释:

  • total      总量
  • used      使用量
  • free      剩余量
  • shared      共享内存,一般系统不会用到,等于是废弃的内存
  • buffers      空闲的buffers空间
  • cached      空闲的cached空间
  • -/+ buffers/cache:    使用和未使用的buffers/cache
    • (-buffers/cache) used内存数:第一部分Mem行中的 used – buffers – cached
    • (+buffers/cache) free内存数: 第一部分Mem行中的 free + buffers + cached

清理缓存命令

echo 3 > /proc/sys/vm/drop_caches    表示向drop_caches传送3号指令,清理缓存

df查看磁盘

用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

命令说明(常用):

  -a  包含全部的文件系统

  -h  以可读性较高的方式来显示信息

  -i  显示inode的信息

  -l  仅显示本地端的文件系统

  -T  显示文件系统的类型

[root@centos-python ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 50G 4.0G 46G 8% /
devtmpfs devtmpfs 985M 0 985M 0% /dev
tmpfs tmpfs 994M 0 994M 0% /dev/shm
tmpfs tmpfs 994M 8.9M 986M 1% /run
tmpfs tmpfs 994M 0 994M 0% /sys/fs/cgroup
/dev/sr0 iso9660 6.6G 6.6G 0 100% /mnt
/dev/mapper/centos-home xfs 48G 36M 48G 1% /home
/dev/sda1 xfs 497M 119M 379M 24% /boot

字段解释:

  • Filesystem   磁盘设备
  • Type      文件系统类型
  • Size      总量
  • Used      使用量
  • Avail      剩余量
  • Use %      使用百分比
  • Mounted on    挂载点

文件系统:操作系统在存储设备上组织文件和数据的方法

常见文件系统类型

  Windows:NTFS、fat16、fat32等

  Linux:ext2、ext3、ext4、xfs、vfat等

查看文件inodes

[root@centos-python ~]# df -ih
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/centos-root 50M 145K 50M 1% /
devtmpfs 247K 389 246K 1% /dev
tmpfs 249K 1 249K 1% /dev/shm
tmpfs 249K 494 249K 1% /run
tmpfs 249K 13 249K 1% /sys/fs/cgroup
/dev/sr0 0 0 0 - /mnt
/dev/mapper/centos-home 48M 137 48M 1% /home
/dev/sda1 500K 330 500K 1% /boot

对于服务器而言,很有可能出现存储大量小文件的情况,这种情况会造成磁盘空间未用完,但inodes却用完了,导致磁盘无法写入新数据。

ps进程管理

用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。

命令说明(常用):

  a:显示现行终端机下的所有程序,包括其他用户的程序。

  u:以用户为主的格式来显示程序状况。

  x:显示所有程序,不以终端机来区分。

  e:列出程序时,显示每个程序所使用的环境变量。

  l:采用详细的格式来显示程序状况。

  f:用ASCII字符显示树状结构,表达程序间的相互关系。

  注:常用的两种组合aux,elf

ps -aux查看进程信息

[root@centos-python ~]# ps -aux |head -5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 52840 6752 ? Ss May25 0:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 23
root 2 0.0 0.0 0 0 ? S May25 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S May25 0:03 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< May25 0:00 [kworker/0:0H]
...
...

字段解释:

  • USER    用户
  • PID     进程号
  • %CPU    CPU使用百分比
  • %MEM    内存使用百分比
  • VSZ      虚拟内存
  • RSS      实际内存占用
  • TTY     所在终端 
  • STAT    进程状态
  • START    进程启动时间
  • TIME    CPU累计使用时间
  • COMMAND    启动进程的命令

ps -elf查看其他信息

[root@centos-python ~]# ps -elf |head -5
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 1 0 0 80 0 - 13210 ep_pol May25 ? 00:00:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 23
1 S root 2 0 0 80 0 - 0 kthrea May25 ? 00:00:00 [kthreadd]
1 S root 3 2 0 80 0 - 0 smpboo May25 ? 00:00:03 [ksoftirqd/0]
1 S root 5 2 0 60 -20 - 0 worker May25 ? 00:00:00 [kworker/0:0H]
....
....

主要是查看父进程PPID号

kill和pkill杀死进程

kill/pkill

用来删除执行中的程序或工作。kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。

一般使用-9指令强制杀死进程

命令格式:kill命令后面跟进程pid,pkill后面跟进程名字

  kill -9 pid

  pkill -9 process_name

pstree查看进程树

以树状图的方式展现进程之间的派生关系,显示效果比较直观。
命令说明:pstree process_name

查看系统所有进程

[root@centos-python ~]# pstree
systemd─┬─ModemManager───2*[{ModemManager}]
├─NetworkManager─┬─dhclient
│ └─3*[{NetworkManager}]
├─2*[abrt-watch-log]
├─abrtd
├─alsactl
├─atd
├─auditd─┬─audispd─┬─sedispatch
│ │ └─{audispd}
│ └─{auditd}
├─avahi-daemon───avahi-daemon
├─chronyd
├─crond
├─dbus-daemon───{dbus-daemon}
├─firewalld───{firewalld}
├─iprdump
├─iprinit
├─iprupdate
├─ksmtuned───sleep
├─libvirtd───10*[{libvirtd}]
├─login───bash
├─lsmd
├─lvmetad
├─master─┬─pickup
│ └─qmgr
├─polkitd───5*[{polkitd}]
├─rpc.statd
├─rpcbind
├─rsyslogd───2*[{rsyslogd}]
├─smartd
├─sshd───sshd───bash───pstree
├─systemd-journal
├─systemd-logind
├─systemd-udevd
├─tuned───4*[{tuned}]
└─vmtoolsd───{vmtoolsd}

fdisk硬盘分区

用于观察硬盘实体使用情况,也可对硬盘分区,它采用的是传统的问答式界面
命令说明:
  -l    列出当前系统内磁盘信息

硬盘分区示例:

查看当前系统内磁盘信息

[root@centos-python ~]# fdisk -l

Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000bda30 Device Boot Start End Blocks Id System
/dev/sda1 * 2048 1026047 512000 83 Linux
/dev/sda2 1026048 209715199 104344576 8e Linux LVM Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/mapper/centos-swap: 2164 MB, 2164260864 bytes, 4227072 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/mapper/centos-root: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/mapper/centos-home: 51.0 GB, 50994348032 bytes, 99598336 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

在裸盘sdb上创建分区

[root@centos-python ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them.
Be careful before using the write command. Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x8b08335d. Command (m for help):

按m可查看帮助,创建一个新磁盘按n

Command (m for help): n              #创建一个新分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p                #创建一个主分区,e为扩展分区
Partition number (1-4, default 1):         #指定一个分区编号,默认1
First sector (2048-20971519, default 2048):     #指定起始扇区,默认2048开始
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +1G      #指定空间大小为1G
Partition 1 of type Linux and of size 1 GiB is set Command (m for help): w           #保存分区信息并退出
The partition table has been altered! Calling ioctl() to re-read partition table.
Syncing disks.
[root@centos-python ~]# fdisk -l /dev/sdb Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x2067e569 Device Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux

创建分区后,需要创建文件系统,并挂在到目录上才能使用,一个分区可以挂载到多个目录上

[root@centos-python ~]# mkfs.xfs /dev/sdb1               #格式化为xfs文件系统,输入mkfs.后按两下tab可以显示出当前系统支持的文件系统类型
meta-data=/dev/sdb1 isize=256 agcount=4, agsize=65536 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=262144, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@centos-python ~]# mkdir /sdb1
[root@centos-python ~]# mount /dev/sdb1 /sdb1          #挂载sdb1分区到sdb1目录上,可挂载到多个目录上,挂载后即可使用
[root@centos-python ~]# df -hT |grep sdb1
/dev/sdb1 xfs 1014M 33M 982M 4% /sdb1

创建一个新分区,配置成swap使用

[root@centos-python ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them.
Be careful before using the write command. Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e                   #创建扩展分区
Partition number (2-4, default 2):
First sector (2099200-20971519, default 2099200):
Using default value 2099200
Last sector, +sectors or +size{K,M,G} (2099200-20971519, default 20971519):
Using default value 20971519
Partition 2 of type Extended and of size 9 GiB is set Command (m for help): n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)            #逻辑分区,如果创建了三个主分区一个扩展分区,就没有p选项了
Select (default p): l                  #选择逻辑分区
Adding logical partition 5
First sector (2101248-20971519, default 2101248):
Using default value 2101248
Last sector, +sectors or +size{K,M,G} (2101248-20971519, default 20971519): +2G
Partition 5 of type Linux and of size 2 GiB is set Command (m for help): w
The partition table has been altered! Calling ioctl() to re-read partition table.
Syncing disks.

将新分区格式化成swap,并激活使用

[root@centos-python ~]# mkswap /dev/sdb5               #格式化成swap分区
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=6056a0ac-5d62-4f57-9243-03eed594e73a
[root@centos-python ~]# swapon /dev/sdb5               #激活swap分区使用
[root@centos-python ~]# swapon -s                   #查看当前系统内的swap分区使用情况
Filename Type Size Used Priority
/dev/dm-0 partition 2113532 0 -1
/dev/sdb5 partition 2097148 0 -2
[root@centos-python ~]# swapoff /dev/sdb5               #关闭swap分区
[root@centos-python ~]# swapon -s
Filename Type Size Used Priority
/dev/dm-0 partition 2113532 0 -1

最新文章

  1. python 杂七杂八 :
  2. Dubbo的使用及原理浅析.
  3. 尝试制作了一个Panorama
  4. Android四大布局及其主要属性
  5. 蓝桥杯 算法训练 区间k大数查询(水题)
  6. jQuery中each的break和continue
  7. jQuery 手风琴侧边菜单
  8. JSP中两种模式的总结
  9. ios使用xcode进行Archive打包上传出现的常见错误
  10. 上传本地项目到githup仓库
  11. 生成式对抗网络(GAN)学习笔记
  12. springboot 学习之路 7(静态页面自动生效问题)
  13. 001-电脑操作规范-2019年03月.doc
  14. Python 中的字符串(str)、字典(dict)详解及操作方法
  15. BZOJ1124 POI2008枪战Maf(环套树+贪心)
  16. 【Latex】常用工具包
  17. CentOS系统 cd命令的使用
  18. 远程连接MySQL MySQL的远程连接
  19. C# 3.0 / C# 3.5 扩展方法
  20. 001-Go JSON处理

热门文章

  1. 【hdu5381】维护区间内所有子区间的gcd之和-线段树
  2. [POI2004] SZP (贪心+拓扑排序)
  3. 取(m堆)石子游戏 HDU2176(Nim博弈)
  4. TOJ 1049 Jesse&#39;s problem (最短路 floyd)
  5. mysql增删
  6. php中使用static方法
  7. Python3 json、pickle序列化与反序列化
  8. 【DeepLearning学习笔记】Coursera课程《Neural Networks and Deep Learning》——Week1 Introduction to deep learning课堂笔记
  9. 64_l4
  10. CentOS在ssh下远程重装系统