仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1269|回复: 12
打印 上一主题 下一主题

[其他Linux] Linux教程之天天一个linux命令(46):vmstat命令仓酷云

[复制链接]
飘飘悠悠 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:22:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
无论图形界面发展到什么水平这个原理是不会变的,Linux命令有许多强大的功能:从简单的磁盘操作、文件存取、到进行复杂的多媒体图象和流媒体文件的制作。
vmstat是VirtualMeomoryStatistics(假造内存统计)的缩写,可对操纵体系的假造内存、历程、CPU举动举行监控。他是对体系的全体情形举行统计,不敷的地方是没法对某个历程举行深切剖析。vmstat工具供应了一种低开支的体系功能察看体例。由于vmstat自己就是低开支工具,在十分高负荷的服务器上,你必要检察并监控体系的安康情形,在把持窗口仍是可以利用vmstat输入了局。在进修vmstat命令前,我们先懂得一下Linux体系中关于物理内存和假造内存相干信息。


物理内存和假造内存区分:
我们晓得,间接从物理内存读写数据要比从硬盘读写数据要快的多,因而,我们但愿一切数据的读取和写进都在内存完成,而内存是无限的,如许就引出了物理内存与假造内存的观点。
物理内存就是体系硬件供应的内存巨细,是真实的内存,相对物理内存,在linux下另有一个假造内存的观点,假造内存就是为了满意物理内存的不敷而提出的战略,它是使用磁盘空间假造出的一块逻辑内存,用作假造内存的磁盘空间被称为互换空间(SwapSpace)。
作为物理内存的扩大,linux会在物理内存不敷时,利用互换分区的假造内存,更具体的说,就是内核会将临时不必的内存块信息写到互换空间,如许以来,物理内存失掉了开释,这块内存就能够用于别的目标,当必要用到原始的内容时,这些信息会被从头从互换空间读进物理内存。
linux的内存办理接纳的是分页存取机制,为了包管物理内存能失掉充实的使用,内核会在得当的时分将物理内存中不常常利用的数据块主动互换到假造内存中,而将常常利用的信息保存到物理内存。
要深切懂得linux内存运转机制,必要晓得上面提到的几个方面:
起首,Linux体系会不时的举行页面互换操纵,以坚持尽量多的余暇物理内存,即便并没有甚么事变必要内存,Linux也会互换出临时不必的内存页面。这能够制止守候互换所需的工夫。
其次,linux举行页面互换是有前提的,不是一切页面在不必时都互换到假造内存,linux内核依据”比来最常常利用“算法,仅仅将一些不常常利用的页面文件互换到假造内存,偶然我们会看到这么一个征象:linux物理内存另有良多,可是互换空间也利用了良多。实在,这其实不奇异,比方,一个占用很年夜内存的历程运转时,必要泯灭良多内存资本,此时就会有一些不经常使用页面文件被互换到假造内存中,但厥后这个占用良多内存资本的历程停止并开释了良多内存时,方才被互换进来的页面文件其实不会主动的互换进物理内存,除非有这个需要,那末现在体系物理内存就会余暇良多,同时互换空间也在被利用,就呈现了方才所说的征象了。关于这点,不必忧虑甚么,只需晓得是怎样一回事就能够了。
最初,互换空间的页面在利用时会起首被互换到物理内存,假如此时没有充足的物理内存来包容这些页面,它们又会被即刻互换进来,云云以来,假造内存中大概没有充足空间来存储这些互换页面,终极会招致linux呈现假逝世机、服务非常等成绩,linux固然能够在一段工夫内自行恢复,可是恢复后的体系已基础不成用了。
因而,公道计划和计划linux内存的利用,长短常主要的。
假造内存道理:
在体系中运转的每一个历程都必要利用到内存,但不是每一个历程都必要时时刻刻利用体系分派的内存空间。当体系运转所需内存凌驾实践的物理内存,内核会开释某些历程所占用但未利用的部分或一切物理内存,将这部分材料存储在磁盘上直到历程下一次挪用,并将开释出的内存供应给有必要的历程利用。
在Linux内存办理中,次要是经由过程“调页Paging”和“互换Swapping”来完成上述的内存调剂。调页算法是将内存中比来不常利用的页面换到磁盘上,把举动页面保存在内存中供历程利用。互换手艺是将全部历程,而不是部分页面,全体互换到磁盘上。
分页(Page)写进磁盘的历程被称作Page-Out,分页(Page)从磁盘从头回到内存的历程被称作Page-In。当内核必要一个分页时,但发明此分页不在物理内存中(由于已被Page-Out了),此时就产生了分页毛病(PageFault)。
当体系内核发明可运转内存变少时,就会经由过程Page-Out来开释一部分物理内存。经管Page-Out不是常常产生,可是假如Page-out频仍不休的产生,直到当内核办理分页的工夫凌驾运转程式的工夫时,体系效能会急剧下落。这时候的体系已运转十分慢或进进停息形态,这类形态亦被称作thrashing(平稳)。
1.命令格局:
vmstat[-a][-n][-Sunit][delay[count]]
vmstat[-s][-n][-Sunit]
vmstat[-m][-n][delay[count]]
vmstat[-d][-n][delay[count]]
vmstat[-pdiskpartition][-n][delay[count]]
vmstat[-f]
vmstat[-V]
2.命令功效:
用来显现假造内存的信息
3.命令参数:
-a:显现活泼和非活泼内存
-f:显现从体系启动至今的fork数目。
-m:显现slabinfo
-n:只在入手下手时显现一次各字段称号。
-s:显现内存相干统计信息及多种体系举动数目。
delay:革新工夫距离。假如不指定,只显现一条了局。
count:革新次数。假如不指定革新次数,但指定了革新工夫距离,这时候革新次数为无量。
-d:显现磁盘相干统计信息。
-p:显现指定磁盘分区统计信息
-S:利用指订单位显现。参数有k、K、m、M,分离代表1000、1024、1000000、1048576字节(byte)。默许单元为K(1024bytes)
-V:显现vmstat版本信息。
4.利用实例:
实例1:显现假造内存利用情形
命令:
vmstat
输入:


<br>
[root@localhost~]#vmstat56
procs-----------memory-------------swap-------io------system-------cpu------
rbswpdfreebuffcachesisobiboincsussyidwast
00030298761996166909800002320010000
0003029752199616690980000411009390010000
000302975219961669098000031004360010000
000302975219961669098000041004360010000
000302975219961669098000061003330010000

<br>

000302975219961669098000051003330010000
申明:
字段申明:
Procs(历程):
r:运转行列中历程数目
b:守候IO的历程数目
Memory(内存):
swpd:利用假造内存巨细
free:可用内存巨细
buff:用作缓冲的内存巨细
cache:用作缓存的内存巨细
Swap:
si:每秒从互换区写到内存的巨细
so:每秒写进互换区的内存巨细
IO:(如今的Linux版本块的巨细为1024bytes)
bi:每秒读取的块数
bo:每秒写进的块数
体系:
in:每秒中止数,包含时钟中止。
cs:每秒高低文切换数。
CPU(以百分比暗示):
us:用户历程实行工夫(usertime)
sy:体系历程实行工夫(systemtime)
id:余暇工夫(包含IO守候工夫),中心处置器的余暇工夫。以百分比暗示。
wa:守候IO工夫
备注:假如r常常年夜于4,且id常常少于40,暗示cpu的负荷很重。假如pi,po临时不即是0,暗示内存不敷。假如disk常常不即是0,且在b中的行列年夜于3,暗示io功能欠好。Linux在具有高不乱性、牢靠性的同时,具有很好的可伸缩性和扩大性,可以针对分歧的使用和硬件情况调剂,优化出满意以后使用必要的最好功能。因而企业在保护Linux体系、举行体系调优时,懂得体系功能剖析工具是相当主要的。
命令:
vmstat55
暗示在5秒工夫内举行5次采样。将失掉一个数据汇总他可以反应真实的体系情形。
实例2:显现活泼和非活泼内存
命令:
vmstat-a25
输入:


<br>
[root@localhost~]#vmstat-a25
procs-----------memory-------------swap-------io------system-------cpu------
rbswpdfreeinactactivesisobiboincsussyidwast
00030297523877285130080002320010000
000302975238772851307600001005340010000
0003029752387728513076000221004360010000
000302975238772851307600001004330010000
000302975238772851307600001003320010000

<br>

[root@localhost~]#
申明:
利用-a选项显现活泼和非活泼内存时,所显现的内容除增添inact和active外,其他显现内容与例子1不异。
字段申明:
Memory(内存):
inact:非活泼内存巨细(当利用-a选项时显现)
active:活泼的内存巨细(当利用-a选项时显现)
实例3:检察体系已fork了几次
命令:
vmstat-f
输入:
[root@SCF1129~]#vmstat-f
12744849forks
[root@SCF1129~]#
申明:
这个数据是从/proc/stat中的processes字段里获得的
实例4:检察内存利用的具体信息
命令:
vmstat-s
输入:


<br>
[root@localhost~]#vmstat-s
4043760totalmemory
1013884usedmemory
513012activememory
387728inactivememory
3029876freememory
199616buffermemory
690980swapcache
6096656totalswap
0usedswap
6096656freeswap
83587non-niceusercputicks
132niceusercputicks
278599systemcputicks
913344692idlecputicks
814550IO-waitcputicks
10547IRQcputicks
21261softirqcputicks
0stolencputicks
310215pagespagedin
14254652pagespagedout
0pagesswappedin
0pagesswappedout
288374745interrupts
146680577CPUcontextswitches
1351868832boottime
367291forks

<br>

申明:
这些信息的分离来自于/proc/meminfo,/proc/stat和/proc/vmstat。
实例5:检察磁盘的读/写
命令:
vmstat-d
输入:


<br>
[root@localhost~]#vmstat-d
disk-------------reads------------------------writes----------------IO------
totalmergedsectorsmstotalmergedsectorsmscursec
ram00000000000
ram10000000000
ram20000000000
ram30000000000
ram40000000000
ram50000000000
ram60000000000
ram70000000000
ram80000000000
ram90000000000
ram100000000000
ram110000000000
ram120000000000
ram130000000000
ram140000000000
ram150000000000
sda33381645561540763224206811114954162850828815990289010491
hdc0000000000
fd00000000000
md00000000000
[root@localhost~]#

<br>

申明:
这些信息次要来自于/proc/diskstats.
merged:暗示一次来自于兼并的写/读哀求,一样平常体系会把多个毗连/临近的读/写哀求兼并到一同来操纵.
实例6:检察/dev/sda1磁盘的读/写
命令:
输入:
[root@SCF1129~]#df
文件体系1K-块已用可用已用%挂载点
/dev/sda311193365482764206810348355003%/tmpfs329783760329783760%/dev/shm
/dev/sda11032088596049200567%/boot
[root@SCF1129~]#vmstat-p/dev/sda1
sda1readsreadsectorswritesrequestedwrites
186074249978648[root@SCF1129~]#vmstat-p/dev/sda3
sda3readsreadsectorswritesrequestedwrites
4293503517626828998789980301488[root@SCF1129~]#
申明:
这些信息次要来自于/proc/diskstats。
reads:来自于这个分区的读的次数。
readsectors:来自于这个分区的读扇区的次数。
writes:来自于这个分区的写的次数。
requestedwrites:来自于这个分区的写哀求次数。
实例7:检察体系的slab信息
命令:
vmstat-m
输入:


<br>
[root@localhost~]#vmstat-m
CacheNumTotalSizePages
ip_conntrack_expect0013628
ip_conntrack31330413
ip_fib_alias11596459
ip_fib_hash11596459
AF_VMCI009604
bio_map_info10010510647
dm_mpath0010647
jbd_4k0040961
dm_uevent0026083
dm_tio0024144
dm_io004877
scsi_cmd_cache101038410
sgpool-128323240961
sgpool-64323220482
sgpool-32323210244
sgpool-1632325128
sgpool-8454525615
scsi_io_context0011234
ext3_inode_cache51080511057605
ext3_xattr36888844
journal_handle1814424144
journal_head56809640
revoke_table420216202
revoke_record0032112
uhci_urb_priv005667
UNIX133370411
flow_cache0012830
msi_cache33596459
cfq_ioc_pool149012830
cfq_pool129021618
crq_pool16968048
deadline_drq008048
as_arq009640
mqueue_inode_cache148964
isofs_inode_cache006086
hugetlbfs_inode_cache175767
CacheNumTotalSizePages
ext2_inode_cache007205
ext2_xattr008844
dnotify_cache004092
dquot0025615
eventpoll_pwq3537253
eventpoll_epi32019220
inotify_event_cache004092
inotify_watch_cache1537253
kioctx0032012
kiocb0025615
fasync_cache0024144
shmem_inode_cache2542907685
posix_timers_cache0012830
uid_cache0012830
ip_mrt_cache0012830
tcp_bind_bucket311232112
inet_peer_cache0012830
secpath_cache006459
xfrm_dst_cache0038410
ip_dst_cache51038410
arp_cache11525615
RAW357685
UDP5107685
tw_sock_TCP0019220
request_sock_TCP0012830
TCP4516005
blkdev_ioc141186459
blkdev_queue203015765
blkdev_requests134227214
biovec-2567740961
biovec-1287820482
biovec-647810244
biovec-1671525615
biovec-47596459
biovec-12320216202
bio27027012830
utrace_engine_cache006459
CacheNumTotalSizePages
utrace_cache006459
sock_inode_cache33486406
skbuff_fclone_cache775127
skbuff_head_cache31939025615
file_lock_cache12217622
Acpi-Operand413642486459
Acpi-ParseExt006459
Acpi-Parse004092
Acpi-State008048
Acpi-Namespace2871291232112
delayacct_cache812956459
taskstats_cache4537253
proc_inode_cache142714405926
sigqueue0016024
radix_tree_node13166131885367
bdev_cache23248324
sysfs_dir_cache537054128844
mnt_cache263025615
inode_cache200920095607
dentry_cache609526102021618
filp479130525615
names_cache3340961
avc_node14537253
selinux_inode_security99412008048
key_jar22019220
idr_layer_cache74775287
buffer_head1640451648009640
mm_struct51568964
vm_area_struct1142195817622
fs_cache351776459
files_cache36557685
signal_cache721628329
sighand_cache688421123
task_struct768018882
anon_vma45886424144
pid832956459
shared_policy_node004877
CacheNumTotalSizePages
numa_policy3714424144
size-131072(DMA)001310721
size-131072001310721
size-65536(DMA)00655361
size-6553611655361
size-32768(DMA)00327681
size-3276822327681
size-16384(DMA)00163841
size-1638455163841
size-8192(DMA)0081921
size-81927781921
size-4096(DMA)0040961
size-409611011140961
size-2048(DMA)0020482
size-204860260220482
size-1024(DMA)0010244
size-102434435210244
size-512(DMA)005128
size-5124334805128
size-256(DMA)0025615
size-2561139115525615
size-128(DMA)0012830
size-64(DMA)006459
size-64563957826459
size-32(DMA)0032112
size-12880193012830
size-323005302432112
kmem_cache13713726881

<br>

这组信息来自于/proc/slabinfo。

按照它们在系统中的作用分成几个部分介绍给大家,通过这些基础命令的学习我们可以进一步理解Linux系统:
第二个灵魂 该用户已被删除
沙发
发表于 2015-1-19 19:03:47 | 只看该作者
另外Linux上也有很多的应用软件,安装运行了这些软件后,你就可以在Linux上编辑文档、图?片,玩游戏、上网、播放多媒体文件等。
透明 该用户已被删除
板凳
发表于 2015-1-24 15:25:04 | 只看该作者
有疑问前,知识学习前,先用搜索。
灵魂腐蚀 该用户已被删除
地板
发表于 2015-1-26 21:59:57 | 只看该作者
感谢老师和同学们在学习上对我的帮助。
冷月葬花魂 该用户已被删除
5#
发表于 2015-1-31 23:23:15 | 只看该作者
和私有操作系统不同,各个Linux的发行版本的技术支持时间都较短,这对于Linux初学者是往往不够的。
再现理想 该用户已被删除
6#
发表于 2015-2-4 06:00:04 | 只看该作者
得到到草率的回答或者根本得不到任何Linux答案。越表现出在寻求帮助前为解决问题付出的努力,你越能得到实质性的帮助。
谁可相欹 该用户已被删除
7#
发表于 2015-2-9 16:40:22 | 只看该作者
即便是非英语国家的人发布技术文档,Linux也都首先翻译成英语在国际学术杂志和网络上发表。
再见西城 该用户已被删除
8#
发表于 2015-2-10 06:50:22 | 只看该作者
Linux高手更具有鼓励新手的文化精神。如何在Linux社区获得帮助,需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问。
深爱那片海 该用户已被删除
9#
发表于 2015-2-10 13:25:24 | 只看该作者
对Linux命令熟悉后,你可以开始搭建一个小的Linux网络,这是最好的实践方法。Linux是网络的代名词,Linux网络服务功能非常强大,不论是邮件服务器、Web服务器、DNS服务器等都非常完善。
小妖女 该用户已被删除
10#
发表于 2015-3-1 10:52:08 | 只看该作者
最好先搜寻一下论坛是否有您需要的文章。这样可以获得事半功倍的效果。
只想知道 该用户已被删除
11#
发表于 2015-3-10 14:45:54 | 只看该作者
清楚了解网络的基础知识,特别是在Linux下应用知识,如接入internet等等。
活着的死人 该用户已被删除
12#
发表于 2015-3-11 16:05:48 | 只看该作者
熟读Linux系统有关知识,如系统目录树,有关内容可购书阅读或搜索论坛。
若天明 该用户已被删除
13#
发表于 2015-3-26 20:17:07 | 只看该作者
尽量不要提问纯属是扯蛋.学习Linux特别是自己一个人初学入手的时候没人教很困难.当然如果可以的话平时多去买些Linux书...对学习Linux很有帮助.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-14 14:05

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表