Java程序大多数都部署在Unix环境,而环境的稳定性对于部署的应用至关重要,所以Java开发人员需知道了解Unix环境的命令。
系统版本
查看系统版本
[root@localhost third_pkg]# cat /proc/version
Linux version 2.6.32-431.el6.x86_64 (mockbuild@c6b8.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 03:15:09 UTC 2013
CPU
查看CPU使用率,w
用w
可以查看CPU使用率,但此命令不仅仅看CPU使用率的,w
是who
的w
,意思是谁登录了系统和在做什么事情。load average
后面的3个数字分别为最近1、5、15分钟的平均负载:
[root@localhost ~]# w
07:12:04 up 1 day, 3:44, 1 user, load average: 0.01, 0.01, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.1.100 06:36 0.00s 0.21s 0.00s w
查看综合信息,top
使用top
也能查看类似信息,但它还有个特点,可以实时查看TOP程序,你也试试:
top - 10:13:18 up 16 days, 14:14, 3 users, load average: 0.02, 0.03, 0.00
Tasks: 96 total, 1 running, 95 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.7%us, 1.3%sy, 0.0%ni, 98.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1922148k total, 1733216k used, 188932k free, 130604k buffers
Swap: 0k total, 0k used, 0k free, 979132k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
21318 rabbitmq 20 0 2255m 67m 3816 S 0.7 3.6 0:14.16 beam
简析top的结果:
第一行为基本信息行:10:13:18
:当前时间16 days, 14:14
:机器已启动的时长3 users
,当前后3个用户登录load average: 0.02, 0.03, 0.00
,最近1分钟、5分钟、15分钟的负载情况
第二行为任务行:Task
:96 total, 1 running, 95 sleeping, 0 stopped, 0 zombie
,表示共96个进程,1个正在运行,95个睡眠,0个已停止,0个僵尸状态
第三行为Cpu
行:0.7%us, 1.3%sy, 0.0%ni, 98.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
,分别各空间的占比:
- us,用户空间
- sy,内核空间
- ni,用户进程空间内改变过优先级的进程
- id,空闲
- wa,IO等待
- hi,硬中断
- si,软中断
- st
第四行为内存行:1922148k total, 1733216k used, 188932k free, 130604k buffers
,表示物理总内存、已使用的内存空间、空闲内存空间、缓冲区的内存空间
第五行为交换分区行:0k total, 0k used, 0k free, 979132k cached
,交换分区总空间、已使用的空间、空闲的空间、缓冲的空间
再下面就是各进程的信息了:PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
,分别表示:
- PID,进程ID
- USER,进程所有者
- PR,进程优先级
- NI,NICE值
- VIRT,虚拟内存大小
- RES,
- SHR,共享内存大小
- S,进程状态(R,运行中;S,睡眠;T,停止;Z,僵尸进程)
- %CPU,CPU使用率
- %MEM,内存使用率
- TIME+,进程使用CPU的时间总量
- COMMAND,命令
查看进程的信息,ps
ps
是process snapshot
的意思,进程快照,通过此命令可以查看进程的信息,常用的用法:
[user001@localhost ~]$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Mar22 ? 00:00:01 /sbin/init
root 2 0 0 Mar22 ? 00:00:00 [kthreadd]
root 3 2 0 Mar22 ? 00:00:00 [migration/0]
内存
查看内存使用情况,free
用free
查看内存使用情况,这里的free
指的是内存空间的free
,从打印的结果看,跟used
是相对的:
[user001@localhost ~]$ free
total used free shared buffers cached
Mem: 1012352 537764 474588 0 72292 253348
-/+ buffers/cache: 212124 800228
Swap: 2031608 0 2031608
其中Swap
是交换区
,类似于Windows的虚拟内存
,在内存不够时,把硬盘空间当成内存使用。
虚拟内存统计报告,vmstat
vmstat
,是virtual memory statistics
,意思为虚拟内存统计。
[user001@localhost ~]$ vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 473968 72644 253364 0 0 8 4 25 35 0 0 99 0 0
磁盘
查看磁盘使用情况,df
df
是disk file system
的简写,用于查看磁盘的使用情况。常搭配-h
使用,-h
是--human-readable
的意思。
[user001@localhost ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 77G 3.3G 70G 5% /
tmpfs 495M 216K 495M 1% /dev/shm
/dev/sda1 291M 34M 242M 13% /boot
查看文件、文件夹使用空间,du
du
,可以理解为disk usage
,可以查看文件、文件夹的磁盘使用空间。
下面分别为列出/tmp/
下各文件的占用空间和整个/tmp/
的占用空间:
[root@localhost third_pkg]# du -h /tmp/
4.0K /tmp/.esd-500
4.0K /tmp/pulse-ZHwhowIxj97f
8.0K /tmp/orbit-gdm
80K /tmp/vmware-root
4.0K /tmp/.ICE-unix
176K /tmp/vmware-root-2083994411
4.0K /tmp/.X11-unix
4.0K /tmp/keyring-vU0QIo
24K /tmp/zookeeper/version-2
36K /tmp/zookeeper
8.0K /tmp/pulse-pAOyPUdpK7yZ
4.0K /tmp/keyring-MMfuPn
340K /tmp/
[root@localhost third_pkg]#
[root@localhost third_pkg]# du -sh /tmp/
340K /tmp/
网络
查看网卡的信息,ifconfig
ifconfig
,是network interfaces configuring
,查询服务器的网卡情况,下面就输出了eth0
和lo
两个网络信息:
[root@localhost ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:72:9D:E7
inet addr:192.168.1.101 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe72:9de7/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4806 errors:0 dropped:0 overruns:0 frame:0
TX packets:826 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:387034 (377.9 KiB) TX bytes:138929 (135.6 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:448 (448.0 b) TX bytes:448 (448.0 b)
查看网络情况,netstat
[user001@localhost ~]$ netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 192.168.1.101:ssh 192.168.1.100:63840 ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ] DGRAM 9155 @/org/kernel/udev/udevd
unix 2 [ ] DGRAM 12811 @/org/freedesktop/hal/udev_event
unix 16 [ ] DGRAM 12243 /dev/log
查看IO的情况,iostat
[user001@localhost ~]$ iostat
Linux 2.6.32-431.el6.x86_64 (localhost.localdomain) 03/23/2017 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.05 0.00 0.29 0.24 0.00 99.41
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.78 16.18 8.62 611952 325794