第七章 常见的运维操作命令

在windows中每次打开我的电脑时候都可以看到磁盘的容量,但windows的系统变慢了以后,都可以通过任务管理器查看哪些任务消耗了系统的资源。当我们发现linux服务器变卡了,应该通过哪些命令来查看可能出现的问题呢?

linux能够作为主流的服务器系统,在运维方面上是非常方便的,如果能够合理的应用这些命令,将很快的定位问题。

任务查看器top,系统负载

使用top命令,查看当前系统的使用信息和负载,查看linux中各个进程的信息,可以看出每个进程cpu的使用情况,内存的占用情况等等一些有价值的信息。

top命令标示出了这台linux的关键信息,其中load average表示这台服务器的负载,如:

load average: 0.02, 0.04, 0.00

三个负载信息分别表示:1分钟、5分钟、15分钟内系统的平均负荷

判断系统负荷是否过重,必须理解load average的真正含义。下面,我根据"Understanding Linux CPU Load"这篇文章,尝试用最通俗的语言,解释这个问题。 首先,假设最简单的情况,你的电脑只有一个CPU,所有的运算都必须由这个CPU来完成。 那么,我们不妨把这个CPU想象成一座大桥,桥上只有一根车道,所有车辆都必须从这根车道上通过。(很显然,这座桥只能单向通行。) 系统负荷为0,意味着大桥上一辆车也没有。

系统负荷为0.5,意味着大桥一半的路段有车。

系统负荷为1.0,意味着大桥的所有路段都有车,也就是说大桥已经"满"了。但是必须注意的是,直到此时大桥还是能顺畅通行的。

系统负荷为1.7,意味着车辆太多了,大桥已经被占满了(100%),后面等着上桥的车辆为桥面车辆的70%。以此类推,系统负荷2.0,意味着等待上桥的车辆与桥面的车辆一样多;系统负荷3.0,意味着等待上桥的车辆是桥面车辆的2倍。总之,当系统负荷大于1,后面的车辆就必须等待了;系统负荷越大,过桥就必须等得越久。

CPU的系统负荷,基本上等同于上面的类比。大桥的通行能力,就是CPU的最大工作量;桥梁上的车辆,就是一个个等待CPU处理的进程(process)。 如果CPU每分钟最多处理100个进程,那么系统负荷0.2,意味着CPU在这1分钟里只处理20个进程;系统负荷1.0,意味着CPU在这1分钟里正好处理100个进程;系统负荷1.7,意味着除了CPU正在处理的100个进程以外,还有70个进程正排队等着CPU处理。 为了电脑顺畅运行,系统负荷最好不要超过1.0,这样就没有进程需要等待了,所有进程都能第一时间得到处理。很显然,1.0是一个关键值,超过这个值,系统就不在最佳状态了,你要动手干预了。

上面,我们假设你的电脑只有1个CPU。如果你的电脑装了2个CPU,会发生什么情况呢? 2个CPU,意味着电脑的处理能力翻了一倍,能够同时处理的进程数量也翻了一倍。 还是用大桥来类比,两个CPU就意味着大桥有两根车道了,通车能力翻倍了。

查看文件和文件夹大小

当磁盘大小超过标准时会有报警提示,使用dfdu命令可能发现问题的所在。

  • df:可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
  • du:可以查看文件及文件夹的大小。

df查看个挂入点的情况:

root@ubuntu:/etc# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            470M     0  470M   0% /dev
tmpfs            98M   11M   87M  11% /run
/dev/sda1        19G  3.5G   15G  20% /
tmpfs           488M     0  488M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           488M     0  488M   0% /sys/fs/cgroup
tmpfs            98M     0   98M   0% /run/user/1000

磁盘的空间报警以后,想查找哪个目录哪个文件占了最多的空间,可以是用du命令:

du -h  --max-depth=1

列出了当前当前目录下的文件夹的大小:

224K    ./fonts
772K    ./syntaxhighlighter
400K    ./css
752K    ./js
5.5M    ./img
7.6M    .

可以一步一步的定位到要找的文件夹和文件。

网络管理

在内网中使用内网的ip地址比较安全和迅速,查看本机ip地址

ifconfig

显示的结果如下:

root@ubuntu:/etc# ifconfig
ens33     Link encap:Ethernet  HWaddr 00:0c:29:18:2a:8c  
          inet addr:192.168.100.128  Bcast:192.168.100.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe18:2a8c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8383630 errors:0 dropped:0 overruns:0 frame:0
          TX packets:14320118 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1226016595 (1.2 GB)  TX bytes:2683081624 (2.6 GB)

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:65536  Metric:1
          RX packets:396 errors:0 dropped:0 overruns:0 frame:0
          TX packets:396 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:19800 (19.8 KB)  TX bytes:19800 (19.8 KB)

这是一台虚拟机,本机的内网ip为:192.168.100.128

通过ping,可以查看本机是否连接互联网:

root@ubuntu:/etc# ping www.baidu.com
PING www.a.shifen.com (14.215.177.39) 56(84) bytes of data.
64 bytes from 14.215.177.39: icmp_seq=1 ttl=128 time=37.3 ms
64 bytes from 14.215.177.39: icmp_seq=2 ttl=128 time=29.2 ms

ping了百度站点,从14.215.177.39有返回数据,证明本机的网络是通的。有时也用ping 来查看是否能够达到某一站点或者某一机子。

8080的端口经常被占用掉,可能导致Tomcat无法启动,查找端口可以使用命令NetstatNetstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。

列出所有的端口号 netstat -a

root@ubuntu:/data/tblab/for_tools/Wikitten/static# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 localhost:6023          *:*                     LISTEN     
tcp        0      0 *:27017                 *:*                     LISTEN     
tcp        0      0 *:6379                  *:*                     LISTEN     
tcp        0      0 *:http                  *:*                     LISTEN     
tcp        0      0 *:ssh                   *:*                     LISTEN     
tcp        0      0 *:5623                  *:*                     LISTEN     
tcp        0      0 192.168.60.127:42922    192.168.60.127:mysql    ESTABLISHED
tcp        0      0 192.168.60.127:42900    192.168.60.127:mysql    TIME_WAIT  
tcp        0      0 192.168.60.127:27017    192.168.40.34:60734     ESTABLISHED
tcp        0      0 192.168.60.127:42918    192.168.60.127:mysql    TIME_WAIT  
tcp        0    216 192.168.60.127:ssh      192.168.40.34:60233     ESTABLISHED

继续阅读


所有评论

写了这么多年博客,收到的优秀评论少之又少。在这个属于 SNS 的时代也并不缺少向作者反馈的渠道。

还没有评论

撰写评论