diff --git a/Stream9_Foundation_MD/企业中常用命令(内存、cpu、磁盘).md b/Stream9_Foundation_MD/企业中常用命令(内存、cpu、磁盘).md new file mode 100644 index 0000000..4d44284 --- /dev/null +++ b/Stream9_Foundation_MD/企业中常用命令(内存、cpu、磁盘).md @@ -0,0 +1,256 @@ +#
企业中常用命令
+ +------ + +Author:行癫(zhuangyao) + +Department:北京千锋互联科技有限公司(云计算+信息安全教学部) + +------ + +知识点: + +-如何查看内存空间 + +-如何查看磁盘空间 + +-如何查看cpu使用率 + +#### 查看内存 + +```shell +1.free +[root@xingdian ~]# free + total used free shared buff/cache available +Mem: 999696 102852 784324 6876 112520 754700 +Swap: 2097148 0 2097148 +[root@xingdian ~]# free -m + total used free shared buff/cache available +Mem: 976 100 765 6 109 736 +Swap: 2047 0 2047 + +total:总计物理内存的大小。 +used:已使用多大。 +free:可用有多少。 +Shared:多个进程共享的内存总额。 +Buffers/cached:磁盘缓存的大小。 + +2./proc/meminfo +[root@xingdian ~]# cat /proc/meminfo +MemTotal: 999696 kB +MemFree: 839308 kB +MemAvailable: 784880 kB +Buffers: 12 kB +Cached: 27956 kB +SwapCached: 0 kB +Active: 61960 kB +Inactive: 20088 kB +Active(anon): 54072 kB +Inactive(anon): 6872 kB +Active(file): 7888 kB +Inactive(file): 13216 kB +Unevictable: 0 kB +Mlocked: 0 kB +SwapTotal: 2097148 kB +SwapFree: 2097148 kB +Dirty: 0 kB +Writeback: 0 kB +AnonPages: 54080 kB +Mapped: 21044 kB +Shmem: 6876 kB +Slab: 34864 kB +SReclaimable: 12860 kB +SUnreclaim: 22004 kB +KernelStack: 3920 kB +PageTables: 3284 kB +NFS_Unstable: 0 kB +Bounce: 0 kB +WritebackTmp: 0 kB +CommitLimit: 2596996 kB +Committed_AS: 256212 kB +VmallocTotal: 34359738367 kB +VmallocUsed: 178476 kB +VmallocChunk: 34359310332 kB +HardwareCorrupted: 0 kB +AnonHugePages: 14336 kB +HugePages_Total: 0 +HugePages_Free: 0 +HugePages_Rsvd: 0 +HugePages_Surp: 0 +Hugepagesize: 2048 kB +DirectMap4k: 59264 kB +DirectMap2M: 989184 kB + +3.如何清理Buffers/cached中的内容 +[root@xingdian ~]# echo 3 > /proc/sys/vm/drop_caches +``` + +#### 查看磁盘 + +```shell +1.df 列出文件系统的整体磁盘使用量 +[root@xingdian ~]# df -Th +Filesystem Type Size Used Avail Use% Mounted on +/dev/mapper/centos-root xfs 48G 1.7G 46G 4% / +devtmpfs devtmpfs 478M 0 478M 0% /dev +tmpfs tmpfs 489M 0 489M 0% /dev/shm +tmpfs tmpfs 489M 6.8M 482M 2% /run +tmpfs tmpfs 489M 0 489M 0% /sys/fs/cgroup +/dev/sda1 xfs 497M 118M 380M 24% /boot +/dev/mapper/vg1-lv1 xfs 37M 2.2M 35M 6% /mnt/lv1 +/dev/mapper/vg1-lv2 ext4 190M 1.6M 175M 1% /mnt/lv2 +tmpfs tmpfs 98M 0 98M 0% /run/user/0 +-a:列出所有的文件系统,包括系统特有的/proc等文件系统 +-k:以KB的容量显示各文件系统 +-m:以MB的容量显示各文件系统 +-h:以人们较易阅读的GB,MB,KB等格式自行显示 +-H:以M=1000K替代M=1024K的进位方式 +-T:连同该分区的文件系统名称(例如ext3)也列出 +-i:不用硬盘容量,而以inode的数量来显示 + +2.du 评估文件系统的磁盘使用量 +[root@xingdian ~]# du -h a.txt +4.0K a.txt +-a : 列出所有的文件与目录容量,因为默认仅统计目录下面的文件量而已; +-h : 以人们较易读的容量格式(G/M)显示; +-s : 列出总量,而不列出每个个别的目录占用了容量; +-S : 不包括子目录下的总计,与-s有点差别; +-k : 以KB列出容量显示; +-m : 以MB列出容量显示。 + +3.lsblk 列出块设备信息 +[root@xingdian ~]# lsblk +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT +sda 8:0 0 50G 0 disk +├─sda1 8:1 0 500M 0 part /boot +└─sda2 8:2 0 49.5G 0 part + ├─centos-root 253:0 0 47.5G 0 lvm / + └─centos-swap 253:1 0 2G 0 lvm [SWAP] +sdb 8:16 0 20G 0 disk +├─sdb1 8:17 0 96.7M 0 part +├─sdb2 8:18 0 1.8G 0 part +└─sdb3 8:19 0 17.2G 0 part +sdc 8:32 0 20G 0 disk +├─sdc1 8:33 0 47.8M 0 part +├─sdc2 8:34 0 4.8G 0 part +├─sdc3 8:35 0 439.3M 0 part +└─sdc4 8:36 0 1K 0 part +sdd 8:48 0 20G 0 disk +├─vg1-lv1 253:2 0 860M 0 lvm /mnt/lv1 +└─vg1-lv2 253:3 0 500M 0 lvm /mnt/lv2 +sr0 11:0 1 792M 0 rom + +NAME : 这是块设备名。 +MAJ:MIN : 本栏显示主要和次要设备号。 +RM : 本栏显示设备是否可移动设备。注意,在本例中设备sdb和sr0的RM值等于1,这说明他们是可移动设备。 +SIZE : 本栏列出设备的容量大小信息。例如298.1G表明该设备大小为298.1GB,而1K表明该设备大小为1KB。 +RO : 该项表明设备是否为只读。在本案例中,所有设备的RO值为0,表明他们不是只读的。 +TYPE :本栏显示块设备是否是磁盘或磁盘上的一个分区。在本例中,sda和sdb是磁盘,而sr0是只读存储(rom)。(LCTT译注,此处sr0的RO项没有标记为1,可能存在一些错误? +MOUNTPOINT : 本栏指出设备挂载的挂载点。 + +[root@xingdian ~]# lsblk -b /dev/sda 指定设备查看 +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT +sda 8:0 0 53687091200 0 disk +├─sda1 8:1 0 524288000 0 part /boot +└─sda2 8:2 0 53161754624 0 part + ├─centos-root 253:0 0 51011125248 0 lvm / + └─centos-swap 253:1 0 2147483648 0 lvm [SWAP] + +[root@xingdian ~]# lsblk -m 列出设备权限和属主 +NAME SIZE OWNER GROUP MODE +sda 50G root disk brw-rw---- +├─sda1 500M root disk brw-rw---- +└─sda2 49.5G root disk brw-rw---- + ├─centos-root 47.5G root disk brw-rw---- + └─centos-swap 2G root disk brw-rw---- +sdb 20G root disk brw-rw---- +├─sdb1 96.7M root disk brw-rw---- +├─sdb2 1.8G root disk brw-rw---- +└─sdb3 17.2G root disk brw-rw---- + +[root@xingdian ~]# lsblk -a 列出所有设备 +``` + +#### 查看cpu + +```shell + 在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。而监控CPU的性能一般包括以下3点:运行队列、CPU使用率和上下文切换。 + +1、top +2、vmstat + 一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数 +[root@xingdian ~]# vmstat +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 0 816632 12 80440 0 0 111 13 62 89 0 1 99 0 0 +[root@xingdian ~]# vmstat 2 3 +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 0 816524 12 80464 0 0 105 12 59 85 0 0 99 0 0 + 0 0 0 816540 12 80464 0 0 0 0 25 28 0 0 100 0 0 + 0 0 0 816524 12 80464 0 0 0 1 25 23 0 1 100 0 0 +(1)进程procs: + r:在运行队列中等待的进程数 。 + b:在等待io的进程数 。 +(2)Linux 内存监控内存memoy: + swpd:现时可用的交换内存(单位KB)。 + free:空闲的内存(单位KB)。 + buff: 缓冲去中的内存数(单位:KB)。 + cache:被用来做为高速缓存的内存数(单位:KB)。 +(3) Linux 内存监控swap交换页面 + si: 从磁盘交换到内存的交换页数量,单位:KB/秒。 + so: 从内存交换到磁盘的交换页数量,单位:KB/秒。 +(4)Linux 内存监控 io块设备: + bi: 发送到块设备的块数,单位:块/秒。 + bo: 从块设备接收到的块数,单位:块/秒。 +(5)Linux 内存监控system系统: + in: 每秒的中断数,包括时钟中断。 + cs: 每秒的环境(上下文)转换次数。 +(6)Linux 内存监控cpu中央处理器: + cs:用户进程使用的时间 。以百分比表示。 + sy:系统进程使用的时间。 以百分比表示。 + id:中央处理器的空闲时间 。以百分比表示。 +常见诊断: +假如 r 经常大于4 ,且 id 经常小于40,表示中央处理器的负荷很重。 +假如 bi,bo 长期不等于0,表示物理内存容量太小。 +b 表示阻塞的进程,这个不多说,进程阻塞,大家懂的。 +swpd 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。 +free 空闲的物理内存的大小,我的机器内存总共8G,剩余3415M。 +buff Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存,我本机大概占用300多M +cache cache直接用来记忆我们打开的文件,给文件做缓冲,我本机大概占用300多M(这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。) +si 每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。我的机器内存充裕,一切正常。 +so 每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。。 +in 每秒CPU的中断次数,包括时间中断 +sy 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。 +id 空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。 +wt 等待IO CPU时间。 + +3./proc/cpuinfo +[root@xingdian ~]# cat /proc/cpuinfo +processor : 0 +vendor_id : GenuineIntel +cpu family : 6 +model : 42 +model name : Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz +stepping : 7 +microcode : 0x2d +cpu MHz : 2501.082 +cache size : 3072 KB +physical id : 0 +siblings : 1 +core id : 0 +cpu cores : 1 +apicid : 0 +initial apicid : 0 +fpu : yes +fpu_exception : yes +cpuid level : 13 +wp : yes +flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm tsc_adjust arat +bogomips : 5002.00 +clflush size : 64 +cache_alignment : 64 +address sizes : 43 bits physical, 48 bits virtual +power management: +``` +