Linux 常用命令原创

May 19, 2020
haiqing
323
Ubuntu 中常用的命令介绍及使用方法

硬件配置部分

CPU

lscpu

描述:

此命令用来显示cpu的相关信息

lscpu从sysfs和/proc/cpuinfo收集cpu体系结构信息,命令的输出比较易读

ubuntu@i-f9z7d9fy:~$ lscpu
Architecture:          x86_64 #架构
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4 #逻辑cpu颗数
On-line CPU(s) list:   0-3 #正在使用的CPU
Thread(s) per core:    1 #每个核心线程
Core(s) per socket:    1 #每个cpu插槽核数/每颗物理cpu核数
Socket(s):             4 #cpu插槽数
NUMA node(s):          1 #NUMA 节点数 ,NUMA是一种服务器架构,和CPU读取内容相关
Vendor ID:             GenuineIntel #cpu厂商ID
CPU family:            6 #cpu系列
Model:                 6 #CPU型号
Model name:          Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHz #型号名称
Stepping:              3 #步进,也可以简单理解为版本号
CPU MHz:               2593.886 #cpu主频
BogoMIPS:              5187.77 #MIPS是每秒百万条指令,Bogo是Bogus(伪)的意思,这里是估算MIPS值
Hypervisor vendor:     KVM #虚拟机类型,有此标识说明当前服务器是虚拟机非物理机
Virtualization type:   full #虚拟化类型为全虚拟化,还有半虚拟化
L1d cache:             32K #一级缓存(google了下,这具体表示表示cpu的L1数据缓存)
L1i cache:             32K #一级缓存(具体为L1指令缓存)
L2 cache:              4096K #二级缓存
L3 cache:              16384K #三级缓存
NUMA node0 CPU(s):     0-3 #NUMA CPU数

NUMA

在NUMA架构出现前,CPU欢快的朝着频率越来越高的方向发展。受到物理极限的挑战,又转为核数越来越多的方向发展。如果每个core的工作性质都是share-nothing(类似于map-reduce的node节点的作业属性),那么也许就不会有NUMA。由于所有CPU Core都是通过共享一个北桥来读取内存,随着核数如何的发展,北桥在响应时间上的性能瓶颈越来越明显。于是,聪明的硬件设计师们,先到了把内存控制器(原本北桥中读取内存的部分)也做个拆分,平分到了每个die上。于是NUMA就出现了!

NUMA中,虽然内存直接attach在CPU上,但是由于内存被平均分配在了各个die上。只有当CPU访问自身直接attach内存对应的物理地址时,才会有较短的响应时间(后称Local Access)。而如果需要访问其他CPU attach的内存的数据时,就需要通过inter-connect通道访问,响应时间就相比之前变慢了(后称Remote Access)。所以NUMA(Non-Uniform Memory Access)就此得名。

NPMA对MASQL类应用并不友好

系统信息部分

top

root@iZ28oksfbfdZ:~# top 
#15:47:17 up 当前时间
#up 2 days 系统运行时间
#3 users 当前登录用户数
#load average: 0.78, 0.60, 0.48 系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。
top - 15:47:17 up 2 days, 13:033 users,  load average: 0.78, 0.60, 0.48
#165 total 进程总数165个
#2 running 正在运行的进程数
#163 sleeping 睡眠的进程数
#0 stopped 停止的进程数
#0 zombie 僵尸进程数
Tasks: 165 total,   2 running, 163 sleeping,   0 stopped,   0 zombie
#7.5 us 用户空间占用CPU百分比
#0.3 sy 内核空间占用CPU百分比
#0.0 ni 用户进程空间内改变过优先级的进程占用CPU百分比
#91.6 id 空闲CPU百分比
#0.6 wa 等待输入输出的CPU时间百分比
#0.0 hi 硬件CPU中断占用百分比
#0.1 si 软中断占用百分比
#0.0 st 虚拟机占用百分比
%Cpu(s):  7.5 us,  0.3 sy,  0.0 ni, 91.6 id,  0.6 wa,  0.0 hi,  0.1 si,  0.0 st
#16433584 total 物理内存总量(k)
#14319616 used 使用的物理内存总量(k)
#2113968 free 空闲内存总量(k)
#1215788 buffers 用作内核缓存的内存量(k)
KiB Mem:  16433584 total, 14319616 used,  2113968 free,  1215788 buffers
#16777212 total 交换区总量
#0 used 使用的交换区总量
#16777212 free 空闲交换区总量
#7736328 cached Mem 缓冲的交换区总量,内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。
KiB Swap: 16777212 total,        0 used, 16777212 free.  7736328 cached Mem

#列名    含义

#PID     进程id
#PPID    父进程id
#RUSER   Real user name
#UID     进程所有者的用户id
#USER    进程所有者的用户名
#GROUP   进程所有者的组名
#TTY     启动进程的终端名。不是从终端启动的进程则显示为 ?
#PR      优先级
#NI      nice值。负值表示高优先级,正值表示低优先级
#P       最后使用的CPU,仅在多CPU环境下有意义
#%CPU    上次更新到现在的CPU时间占用百分比
#TIME    进程使用的CPU时间总计,单位秒
#TIME+   进程使用的CPU时间总计,单位1/100秒
#%MEM    进程使用的物理内存百分比
#VIRT    进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
#SWAP    进程使用的虚拟内存中,被换出的大小,单位kb。
#RES     进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
#CODE    可执行代码占用的物理内存大小,单位kb
#DATA    可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
#SHR     共享内存大小,单位kb
#nFLT    页面错误次数
#nDRT    最后一次写入到现在,被修改过的页面数。
#S       进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
#COMMAND 命令名/命令行
#WCHAN   若该进程在睡眠,则显示睡眠中的系统函数名
#Flags   任务标志,参考 sched.h
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
  841 mysql     20   0 6700092 3.346g   627634.4 21.4 158:18.56 mysqld
 7047 www-data  20   0  564136 104984  3512021.6  0.6   0:06.58 apache2

系统及版本

cat /proc/version

root@iZ28oksfbfdZ:~# cat /proc/version
Linux version 4.15.0-91-generic (buildd@lgw01-amd64-013) (gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)) #92-Ubuntu SMP Fri Feb 28 11:09:48 UTC 2020

lsb_release -a

root@iZ28oksfbfdZ:~# lsb_release -a
LSB Version: security-9.20170808ubuntu1-noarch #Linux Standard Base 版本
Distributor ID: Ubuntu #发行商
Description: Ubuntu 18.04.4 LTS
Release: 18.04 #系统版本号
Codename: bionic #系统版本详细信息

内存

free -m 用MB为单位展示数据

ubuntu@i-f9z7d9fy:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          7984       5165       2818        125        506       3521
-/+ buffers/cache:       1137       6846
Swap:         4095        286       3809

cat /proc/meminfo

ubuntu@i-f9z7d9fy:~$ cat /proc/meminfo
MemTotal: 
      8175636 kB
MemFree:         2892796 kB
MemAvailable:    7084896 kB
Buffers:          518864 kB
Cached:          3606040 kB
SwapCached:        26936 kB
Active:          2584136 kB
Inactive:        2171772 kB
Active(anon):     316784 kB
Inactive(anon):   442824 kB
Active(file):    2267352 kB
Inactive(file):  1728948 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       4194300 kB
SwapFree:        3901344 kB
Dirty:                68 kB
Writeback:             0 kB
AnonPages:        605512 kB
Mapped:           128504 kB
Shmem:            128604 kB
Slab:             477308 kB
SReclaimable:     449192 kB
SUnreclaim:        28116 kB
KernelStack:        2960 kB
PageTables:        15836 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     8282116 kB
Committed_AS:    1679936 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       19712 kB
VmallocChunk:   34359712428 kB
HardwareCorrupted:     0 kB
AnonHugePages:    499712 kB
CmaTotal:              0 kB
CmaFree:               0 kB
HugePages_Total:       0
HugePages_Free: 
      0
HugePages_Rsvd: 
      0
HugePages_Surp: 
      0
Hugepagesize: 
     2048 kB
DirectMap4k:       65376 kB
DirectMap2M:     8323072 kB

硬盘

df -h

ubuntu@i-f9z7d9fy:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
文件系统名称 大小 已用 可用 比例 挂载目录
udev            3.94.03.9G   1% /dev
tmpfs           799484798M   1% /run
/dev/vda1        20G   136.566% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            5.0M     0  5.0M   0% /run/lock
none            3.9G     0  3.9G   0% /run/shm
none            100M     0  100M   0% /run/user
/dev/vdc1        50G   32G   1569% /mnt/disk50