免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 786 | 回复: 0
打印 上一主题 下一主题

程序管理--系统资源的观察 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-01-20 14:04 |只看该作者 |倒序浏览
  系统资源的观察
  除了系统的程序之外,我们还必须就系统的一些资源进行检查啊! 举例来说,我们使用 top 可以看到很多系统的资源对吧!那么,还有没有其他的工具可以查阅的? 当然有啊!底下这些工具指令可以玩一玩!
  # free
  [root@linux ~]# free [-b|-k|-m|-g] [-t]
  参数:
  -b  :直接输入 free 时,显示的单位是 Kbytes,我们可以使用 b(bytes), m(Mbytes)
  k(Kbytes), 及 g(Gbytes) 来显示单位喔!
  -t  :在输出的最终结果,显示实体记忆体与 swap 的总量。
  范例:
  范例一:显示目前系统的记忆体容量
  [root@linux ~]# free -m
  total       used       free     shared    buffers     cached
  Mem:           376        366         10          0        129         94
  -/+ buffers/cache:        141        235
  Swap:          996          0        995
  仔细看看,我的系统当中有 384 MB 左右的实体记忆体,我的 swap 有 1GB 左右, 那我使用 free -m 以 MBytes 来显示时,就会出现上面的资讯。Mem 那一行显示的是实体记忆体的量, Swap 则是虚拟记忆体的量。 total 是总量, used 是已被使用的量, free 则是剩余可用的量。 后面的 shared/buffers/cached 则是在已被使用的量当中,用来作为缓冲及快取的量。
  仔细的看到范例一的输出喔,我的 Linux 主机是很平凡的,根本没有什么工作, 但是,我的实体记忆体是几乎被用光光的情况呢!不过,至少有 129 MB 用在缓冲记忆工作, 94 MB 则用在快取工作,也就是说,系统是‘很有效率的将所有的记忆体用光光’, 目的是为了让系统的存取效能加速啦!
  很多朋友都会问到这个问题‘我的系统明明很轻松,为何记忆体会被用光光?’ 现在瞭了吧?没有错!被用光是正常的!而需要注意的反而是 swap 的量。一般来说, swap 最好不要被使用,尤其 swap 最好不要被使用超过 20% 以上, 如果您发现 swap 的用量超过 20% ,那么,最好还是买实体记忆体来插吧! 因为, Swap 的效能跟实体记忆体实在差很多,而系统会使用到 swap , 绝对是因为实体记忆体不足了才会这样做的!如此,瞭解吧!
  # uname
  [root@linux ~]# uname [-asrmpi]
  参数:
  -a  :所有系统相关的资讯;
  -s  :系统核心名称
  -r  :核心的版本
  -m  :本系统的硬体名称
  -p  :CPU 的类型
  -i  :硬体的平台 (ix86)
  范例:
  范例一:输出系统的基本资讯
  [root@linux ~]# uname -a
  Linux linux.site 2.6.12-1.1398_FC4 #1 Fri Jul 15 00:52:32 EDT 2005
  i686 i686 i386 GNU/Linux
  这个咚咚我们前面使用过很多次了喔!uname 可以列出目前系统的核心版本、 主要硬体平台以及 CPU 类型等等的资讯。以上面范例一的状态来说,我的 Linux 主机使用的核心名称为 Linux,而主机名称为 linux.site,核心的版本为 2.6.12-1.1398_FC4,该核心版本建立的日期为 2005/07/15, 适用的硬体平台为 i386 以上等级的硬体平台喔。
  # uptime
  这个指令很单纯呢!就是显示出目前系统已经开机多久的时间,以及 1, 5, 15 分钟的平均负载就是了。还记得 top 吧?没错啦! 这个 uptime 可以显示出 top 画面的最上面一行!
  [root@linux ~]# uptime
  18:06:30 up 52 days,  6:40,  1 user,  load average: 0.00, 0.00, 0.00
  # 上面表示,目前是 18:06 ,本系统已经开机 52 天又 6:40 ,有 1 个使用者在线上,
  # 平均负载很低,所以都是 0 啊!
  # netstat
  这个 netstat 也是挺好玩的,其实,这个指令比较常被用在网路的监控方面, 不过,在程序管理方面也是需要瞭解的啦!这个指令的执行如下所示:基本上, netstat 的输出分为两大部分,上面是网路介面相关的连线,下方则是与 unix 程序有关的项目。
  [root@linux ~]# netstat -[atunlp]
  参数:
  -a  :将目前系统上所有的连线、监听、Socket 资料都列出来
  -t  :列出 tcp 网路封包的资料
  -u  :列出 udp 网路封包的资料
  -n  :不已程序的服务名称,以埠号 (port number) 来显示;
  -l  :列出目前正在网路监听 (listen) 的服务;
  -p  :列出该网路服务的程序 PID
  范例:
  范例一:列出目前系统已经建立的网路连线与 unix socket 状态
  [root@linux ~]# netstat
  Active Internet connections (w/o servers)
  Proto Recv-Q Send-Q Local Address        Foreign Address       State
  tcp        0    256 59-125-83-224.ad:ssh linux.test.s:52679    ESTABLISHED
  Active UNIX domain sockets (w/o servers)
  Proto RefCnt Flags       Type       State         I-Node Path
  unix  16     [ ]         DGRAM                    4870   /dev/log
  unix  2      [ ]         DGRAM                    3561   @udevd
  unix  3      [ ]         STREAM     CONNECTED     509237
  # 在上面的结果当中,显示了两个部分,分别是网路的连线以及 linux 上面的 socket
  # 连线状态。在网路连线的部分主要内容为:
  # Proto :网路的封包协定,主要分为 TCP 与 UDP 封包,相关资料请参考伺服器篇;
  # Recv-Q:非由使用者程式连结到此 socket 的复制的总 bytes 数;
  # Send-Q:非由远端主机传送过来的 acknowledged 总 bytes 数;
  # Local Address  :本地端的 IP
  # Foreign Address:远端主机的 IP;
  # State :连线状态,主要有建立(ESTABLISED)及监听(LISTEN);
  # 至于 unix 传统的 socket 连接状态则是:
  # Proto :一般就是 unix 啦;
  # RefCnt:连接到此 socket 的程序数量;
  # Flags :连线的旗标;
  # Type  :socket 存取的类型。主要有确认连线的 STREAM 与不需确认的 DGRAM 两种;
  # State :CONNECTED 表示已经连线建立。
  # Path  :连接到此 socket 的相关程式的路径!或者是相关资料输出的路径。
  范例二:找出目前系统上已在监听的网路连线及其 PID
  [root@linux ~]# netstat -tulnp
  Active Internet connections (only servers)
  Proto Recv-Q Send-Q Local Address   Foreign Address  State   PID/Program name
  tcp        0      0 0.0.0.0:21      0.0.0.0:*        LISTEN  1598/vsftpd
  tcp        0      0 127.0.0.1:25    0.0.0.0:*        LISTEN  1666/master
  tcp        0      0 :::22           :::*             LISTEN  5281/sshd
  udp        0      0 0.0.0.0:68      0.0.0.0:*                21339/dhclient
  # 看到了吗?最后面一个栏位就是该埠号被该 PID 或程式所启动的!
  范例三:将上述的本地端 0.0.0.0:21 那个网路服务关闭的话?
  [root@linux ~]# kill 1598
  [root@linux ~]# killall vsftpd
  很多朋友常常有疑问,那就是,我的主机目前到底开了几个门(ports), 呵呵!其实,不论主机提供什么样的服务,一定必须要有相对应的 program 在主机上面执行才行啊! 举例来说,我们鸟园的 Linux 主机提供的就是 WWW 服务,那么我的主机当然有一个程式在提供 WWW 的服务啊!呵呵!那就是 Apache 这个套件所提供的啦! ^_^。 所以,当我执行了这个程式之后,我的系统自然就可以提供 WWW 的服务了。那如何关闭啊? 就关掉该程式所触发的那个程序就好了!例如上面的范例三所提供的例子啊! ^_^
  # dmesg
  在开机的时候你会发现有很多的讯息出现吧,例如 CPU 的形式、硬碟、 光碟型号及硬碟分割表等等,这些资讯的产生都是核心 (kernel) 在进行硬体的测试与驱动啦。 但是讯息都是‘刷’的一声就跑过去了!完全来不及看!伤脑筋~
  这些讯息有时候对于系统管理员是很重要的,因为他提供了系统的资讯呀! 要看这些讯息你可以用 dmesg 这个指令来观看! 因为讯息实在太多了,所以可以加入这个管线指令‘ | more ’来使画面暂停!
  范例一:输出所有的核心开机时的资讯
  [root@linux ~]# dmesg | more
  范例二:搜寻开机的时候,硬碟的相关资讯为何?
  [root@linux ~]# dmesg | grep -i hd
  ide0: BM-DMA at 0xffa0-0xffa7, BIOS settings: hda:DMA, hdb:DMA
  ide1: BM-DMA at 0xffa8-0xffaf, BIOS settings: hdc:DMA, hdd:pio
  hda: ST320430A, ATA DISK drive
  hdb: Maxtor 5T030H3, ATA DISK drive
  hdc: CD-540E, ATAPI CD/DVD-ROM drive
  .....底下省略.....
  由范例二就知道我这部主机的硬碟是怎样了吧?!没错啦! 还可以查阅能不能找到网路卡喔!网路卡的代号是 eth ,所以,直接输入 dmesg | grep -i eth 试看看呢!
  # sar
  这个 sar 并不是系统预设的安装套件,如果您不是选择全部安装的话,这个套件预设是不装的。 不过,如果您是选择全部安装,嘿嘿!那就可以玩这个 sar 了。 这个 sar 的功能倒是可以玩一玩的,因为他可以在您想要主动侦测主机的资源状态, 然后绘制成为图表时,相当好用的一个工具喔!
  [root@linux ~]# sar [-ru] [秒数] [次数]
  参数:
  -u  :进行 CPU 资源的统计;
  -r  :进行主记忆体目前状态的分析
  范例:
  范例一:统计目前主机 CPU 状态,每秒一次,共计三次!
  [root@linux ~]# sar -u 1 3
  Linux 2.6.12-1.1398_FC4 (vbird.vbird.idv.tw)    09/16/05
  14:16:17          CPU     %user     %nice   %system   %iowait     %idle
  14:16:18          all      0.00      0.00      0.00      0.00    100.00
  14:16:19          all      0.00      0.00      0.00      0.00    100.00
  14:16:20          all      0.00      0.00      0.00      0.00    100.00
  Average:          all      0.00      0.00      0.00      0.00    100.00
  # 我这部主机单纯用在家里测试的,所以没有什么网路服务,看的出来,嘿嘿!很安静!
  范例二:统计目前主机记忆体的使用情况
  [root@linux ~]# sar -r 1 3
  Linux 2.6.12-1.1398_FC4 (vbird.vbird.idv.tw)    09/16/05
  14:17:40    kbmemfree kbmemused  %memused kbbuffers  kbcached kbswpfree
  14:17:41        26004    359672     93.26    127528     83996   1019236
  14:17:42        26004    359672     93.26    127528     83996   1019236
  14:17:43        26004    359672     93.26    127528     83996   1019236
  Average:        26004    359672     93.26    127528     83996   1019236
  # 其实这个与 free 的输出结果也差不了太多啦!
  鸟哥倒是很喜欢使用 sar 来做背景主动侦测系统 CPU 的动作!参考看看先!
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/68904/showart_1805400.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP