简介
在系统运维或调试时,经常需要查看系统信息,如发行版、内核版本、内存、磁盘容量等信息。
一般而言,所有的信息基本上都能够通过系统目录/proc
获得,同时也有对应的便于记忆的命令来查看,其实用的多了基本就记住了。
这些信息的获取对调试程序有一定帮助,本文作一小结。
内核版本
查看Linux内核版本及架构,使用:
uname -a
如下:
% uname -a
Linux y-srv 4.4.0-121-generic #145-Ubuntu SMP Fri Apr 13 13:47:23 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
表示:内核版本 4.4.0-121-generic,发行版为 Ubuntu,架构:x86_64。
cat /proc/version
可以得到类似的更详细信息:
% cat /proc/version
Linux version 4.4.0-121-generic (buildd@lcy01-amd64-004) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.9) ) #145-Ubuntu SMP Fri Apr 13 13:47:23 UTC 2018
Linux发行版
Linux系统是使用了Linux内核的所有系统的统称,各个使用该内核的厂商又提供了不同的发行版,如RedHat、Debain等。
我使用的是Ubuntu,使用 lsb_release -a
查看发行信息:
% lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.6 LTS
Release: 16.04
Codename: xenial
可见,我使用的是 Ubuntu 16.04版本。lsb是一种标准,安装后会显示版本。
cat /etc/issue
可得到类似信息:
% cat /etc/issue
Ubuntu 16.04.6 LTS \n \l
cpu信息
需要知道cpu型号、几核等信息,更有利于在并发编程中发挥最大效率。命令lscpu
:
% lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 1
Core(s) per socket: 8
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 79
Model name: Intel(R) Xeon(R) CPU E5-2667 v4 @ 3.20GHz
Stepping: 1
CPU MHz: 1200.000
CPU max MHz: 3600.0000
CPU min MHz: 1200.0000
BogoMIPS: 6399.66
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 25600K
NUMA node0 CPU(s): 0-7
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb invpcid_single intel_pt retpoline kaiser tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm rdseed adx smap xsaveopt cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts
可以看出,型号、8核、64位、小端序等信息,更多详细信息可以参考相关文章,以决定合适的线程数量。
通过 cat /proc/cpuinfo
可得到每个核心的详细信息。
磁盘空间
查看总体磁盘空间:df -h
:
% df -h
Filesystem Size Used Avail Use% Mounted on
udev 32G 0 32G 0% /dev
tmpfs 6.3G 666M 5.7G 11% /run
/dev/mapper/isrv 853G 37G 774G 5% /
1个T的空间足够造了。
查看当前各目录占用的空间:du . -h
:
% du . -h
2.7G ./testd1
2.6G ./testd2
668K ./log
5.2G .
它有丰富的参数可以使用,可以指定目录层级。
使用 fdisk -l
可以查看磁盘分区等信息,需要root权限。
内存空间
使用free -h
查看内存使用情况:
% free -h
total used free shared buff/cache available
Mem: 62G 816M 27G 665M 34G 60G
Swap: 63G 696K 63G
64G空间也够用了。
cpu及内存使用率
查看所有进程使用cpu及内存情况:top
:
按 1
可获得各个cpu核的信息:
可以查看特定进程占用cpu及内存情况ps aux | grep cat
。
网络流量
查看设备网络流量是定位问题的关键步骤,方法也比较多,如ifconfig, tcpdump
等,也可以使用wireshark抓包。
还可以使用自带界面的工具:iftop
,安装即可使用。
它能实时显示网络流量的方向及速率,并具有统计功能。
在显示界面按h
显示帮助。
监听的端口
netstat
是网络编程中必不可少的调试工具,能够查看网络连接的状态。
由于我经常使用tcp,所以一般使用netstat -antp
查看相关信息,包括端口、ip、连接状态等。
可以根据需求使用相关参数netstat -h
。
小结
简略地列出了查看Linux系统信息的一些方法,可能还有更简单的方式,读者朋友请不吝留言指出。
工程技术的东西,还是在应用中学习更容易、更深刻。
平时只需要看一下,知道有这么个工具或方法就可以了,不需要死记硬背,用时能找到就行了。