纠纷奇闻社交美文家庭
投稿投诉
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

LINUX系统的内存管理知识详解

5月21日 亡命徒投稿
  关于LINUX系统的内存管理知识详解
  内存是Linux内核所管理的最重要的资源之一。内存管理系统是操作系统中最为重要的部分,因为系统的物理内存总是少于系统所需要的内存数量。虚拟内存就是为了克服这个矛盾而采用的策略。系统的虚拟内存通过在各个进程之间共享内存而使系统看起来有多于实际内存的内存容量。Linux支持虚拟内存,就是使用磁盘作为RAM的扩展,使可用内存相应地有效扩大。核心把当前不用的内存块存到硬盘,腾出内存给其他目的。当原来的内容又要使用时,再读回内存。以下就是小编为大家整理到的详细LINUX系统内存管理的知识,欢迎大家阅读!!!
  LINUX系统教程:内存管理的知识详解
  一、内存使用情况监测
  (1)实时监控内存使用情况
  在命令行使用“Free”命令可以监控内存使用情况
  代码如下:
  free
  totalusedfreesharedbufferscached
  Mem:25602419228463740010676101004
  bufferscache:80604175420
  Swap:5220720522072
  上面给出了一个256兆的RAM和512兆交换空间的系统情况。第三行输出(Mem:)显示物理内存。total列不显示核心使用的物理内存(通常大约1MB)。used列显示被使用的内存总额(第二行不计缓冲)。free列显示全部没使用的内存。Shared列显示多个进程共享的内存总额。Buffers列显示磁盘缓存的当前大小。第五行(Swap:)对对换空间,显示的信息类似上面。如果这行为全0,那么没使用对换空间。在缺省的状态下,free命令以千字节(也就是1024字节为单位)来显示内存使用情况。可以使用h参数以字节为单位显示内存使用情况,或者可以使用m参数以兆字节为单位显示内存使用情况。还可以通过s参数使用命令来不间断地监视内存使用情况:
  freebs2
  这个命令将会在终端窗口中连续不断地报告内存的使用情况,每2秒钟更新一次。
  (2)组合watch與free命令用来实时监控内存使用情况:
  代码如下:
  watchn2dfree
  Every2。0s:freeFriJul606:06:122007
  totalusedfreesharedbufferscached
  Mem:233356218616147400556064784
  bufferscache:14827285084
  Swap:6225846656615928
  watch命令会每两秒执行free一次,执行前会清除屏幕,在同样位置显示数据。因为watch命令不会卷动屏幕,所以适合出长时间的监测内存使用率。可以使用n选项,控制执行的频率;也可以利用d选项,让命令将每次不同的地方显示出来。Watch命令会一直执行,直到您按下〔Ctrl〕〔C〕为止。
  二、虚拟内存的概念
  (1)Linux虚拟内存实现机制
  Linux虚拟内存的实现需要六种机制的支持:地址映射机制、内存分配回收机制、缓存和刷新机制、请求页机制、交换机制、内存共享机制。
  首先内存管理程序通过映射机制把用户程序的逻辑地址映射到物理地址,在用户程序运行时如果发现程序中要用的虚地址没有对应的物理内存时,就发出了请求页要求;如果有空闲的内存可供分配,就请求分配内存(于是用到了内存的分配和回收),并把正在使用的物理页记录在缓存中(使用了缓存机制)。如果没有足够的内存可供分配,那么就调用交换机制,腾出一部分内存。另外在地址映射中要通过TLB(翻译后援存储器)来寻找物理页;交换机制中也要用到交换缓存,并且把物理页内容交换到交换文件中后也要修改页表来映射文件地址。
  (2)虚拟内存容量设定
  也许有人告诉你,应该分配2倍于物理内存的虚拟内存,但这是个不固定的规律。如果你的物理保存比较小,可以这样设定。如果你有1G物理内存或更多的话,可以缩小一下虚拟内存。Linux会把大量的内存用做Cache的,但在资源紧张时回收回。。你只要看到swap为0或者很小就可以放心了,因为内存放着不用才是最大的浪费。
  三、使甩vmstat命令监视虚拟内存使用情况
  vmstat是VirtualMeomoryStatistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。通常使用vmstat55(表示在5秒时间内进行5次采样)命令测试。将得到一个数据汇总它可以反映真正的系统情况。
  代码如下:
  vmstat55
  procsmemoryswapiosystemcpu
  rbswpdfreebuffcachesisobiboincsussyidwa
  106279234609116880926301898910615691728542
  0062792340091248809200014884434414810
  0062792340091328809200014877424415810
  1062792340091408809200014868418620740
  1062792340091488809200015847400925670
  vmstat命令输出分成六个部分:
  (1)进程procs:
  r:在运行队列中等待的进程数。
  b:在等待io的进程数。
  (2)内存memoy:
  swpd:现时可用的。交换内存(单位KB)。
  free:空闲的内存(单位KB)。
  buff:缓冲去中的内存数(单位:KB)。
  cache:被用来做为高速缓存的内存数(单位:KB)。
  (3)swap交换页面
  si:从磁盘交换到内存的交换页数量,单位:KB秒。
  so:从内存交换到磁盘的交换页数量,单位:KB秒。
  (4)io块设备:
  bi:发送到块设备的块数,单位:块秒。
  bo:从块设备接收到的块数,单位:块秒。
  (5)system系统:
  in:每秒的中断数,包括时钟中断。
  cs:每秒的环境(上下文)切换次数。
  (6)cpu中央处理器:
  cs:用户进程使用的时间。以百分比表示。
  sy:系统进程使用的时间。以百分比表示。
  id:中央处理器的空闲时间。以百分比表示。
  如果r经常大于4,且id经常小于40,表示中央处理器的负荷很重。如果bi,bo长期不等于0,表示物理内存容量太小。
  四、Linux服务器的内存泄露和回收内存的方法
  1、内存泄漏的定义:
  一般我们常说的内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完后必须显示释放的内存。应用程序一般使用malloc,realloc,new等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用free或释放该内存块,否则,这块内存就不能被再次使用,我们就说这块内存泄漏了。
  2、内存泄露的危害
  从用户使用程序的角度来看,内存泄漏本身不会产生什么危害,作为一般的用户,根本感觉不到内存泄漏的存在。真正有危害的是内存泄漏的堆积,这会最终消耗尽系统所有的内存。从这个角度来说,一次性内存泄漏并没有什么危害,因为它不会堆积,而隐式内存泄漏危害性则非常大,因为较之于常发性和偶发性内存泄漏它更难被检测到。存在内存泄漏问题的程序除了会占用更多的内存外,还会使程序的性能急剧下降。对于服务器而言,如果出现这种情况,即使系统不崩溃,也会严重影响使用。
  3、内存泄露的检测和回收
  对于内存溢出之类的麻烦可能大家在编写指针比较多的复杂的程序的时候就会遇到。在Linux或者unix下,C、C语言是最使用工具。但是我们的C程序缺乏相应的手段来检测内存信息,而只能使用top指令观察进程的动态内存总额。而且程序退出时,我们无法获知任何内存泄漏信息。
  使用kill命令
  使用Linux命令回收内存,我们可以使用Ps、Kill两个命令检测内存使用情况和进行回收。在使用超级用户权限时使用命令“Ps”,它会列出所有正在运行的程序名称,和对应的进程号(PID)。Kill命令的工作原理是:向Linux操作系统的内核送出一个系统操作信号和程序的进程号(PID)。
  应用例子:
  为了高效率回收内存可以使用命令ps参数v:
  代码如下:
  〔rootwww〕psv
  PIDTTYSTATTIMEMAJFLTRSDRSRSSMEMCOMMAND
  2542tty1Ss0:000816274280。1sbinmingettytty1
  2543tty2Ss0:000816314280。1sbinmingettytty2
  2547tty3Ss0:000816314320。1sbinmingettytty3
  2548tty4Ss0:000816274280。1sbinmingettytty4
  2574tty5Ss0:000816314320。1sbinmingettytty5
  2587tty6Ss0:000816274240。1sbinmingettytty6
  2657tty7Ss1:181217102998170403。0usrbinXorg:0bra
  2670pts2Ss0:012682621314960。6bash
  3008pts4Ss0:002682622114720。6binbash
  3029pts4S0:0023217835480。2ping192。168。1。12
  3030pts2R0:0027351347680。3psv
  然后如果想回收Ping命令的内存的话,使用命令:
  代码如下:
  Kill93029
  使用工具软件
  Memprof是一个非常具有吸引力且非常易于使用的软件,它由RedHat的OwenTalyor创立。这个工具是用于GNOME前端的BoehmDemersWeiser垃圾回收器。这个工具直接就可以执行,并且其工作起来无需对源代码进行任何修改。在程序执行时,这个工具会以图形化的方式显示内存的使用情况。
  相关介绍:Linux
  严格来讲,Linux这个词本身只表示Linux内核,但人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。
  Linux拥有以下特性:类似于Unix的基本思想,支持完全免费与自由传播,完全兼容POSIX1。0标准,支持多用户、多任务、有着良好的界面、支持多种平台。Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
  Linux有着许多不同的版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

HR怎么判断应聘者的优点和缺点HR怎么判断应聘者的优点和缺点考生回答时除了注意上面三个要点外,还应注意以下几点:(1)尽管这是你的主观评价,受个人自信程度、价值取向等影响很大,也就是说你所描述的……HR招聘讨公司欢心的28个技巧HR招聘讨公司欢心的28个技巧推荐要得到公司上下欢心真的很不容易,特别是作为HR,那么夹缝的位置需要很会做人,不过下面28招秘笈却能让你在公司从领导到扫地阿姨都对你特别尊……HR怎样提高效率,创造利润HR怎样提高效率,创造利润案例故事1:东莞某企业生产部通知人力资源部加紧招聘30个生产一线工人,并要求陆续进来,在10天之内完成招聘工作。可是人力资源在厂门口张贴了……HR会如何回答为何不录用我这个问题HR会如何回答为何不录用我这个问题企业招聘与人才求职是一个双向选择的过程。在回答求职者的疑问时,企业应该从实际情况出发,体现公司对于人才选拔的谨慎。HR,你会如何回……HR一定要存档的12份法律文件HR一定要存档的12份法律文件如何降低员工离职风险,是每个HR需要面对的迫切问题。每个企业HR都应根据自身不同的状况制定出专用的法律文件,并加以妥善保存。一般而言,……HR应该如何成为优秀的人才招聘顾问HR应该如何成为优秀的人才招聘顾问饭要一口口吃,事要一件件做。自从事人力资源管理工作后,自己一直想成为一名真正的企业战略合作伙伴,但事与愿违,往往效果并不理想。回过头来细……如何有效的制定年度HR规划如何有效的制定年度HR规划任何企业的发展都离不开优秀的人力资源和人力资源的有效配置。如何为企业寻找合适的人才,留住人才,发展人才,为组织保持强劲的生命力和竞争力提供有力的……HR招聘的宝典是什么HR招聘的实用宝典是什么吹尽黄沙始到金所谓压力面试,是指在面试过程中,招聘人员提出一些具有困难性、挑战性、非常规性的问题或设计类似的场景,通过追问或者质问的方式,有……HR应如何提高招聘质量呢HR应如何提高招聘质量呢造成企业员工流失的原因众多,其中招聘过程的质量也关系到企业员工流失的问题。所以,HR必须把关好招聘过程的质量。那么如何把关好招聘过程的质量呢?……HR如何做到与Boss神同步HR如何做到与Boss神同步HR是老板的得力助手,传达着老板的旨意,起到维护员工的作用,但HR们如何才能做到与老板神同步,在人力资源管理上有共同的标准呢?站在人力资……员工离职HR该做什么员工离职HR该做什么愤怒显然于事无补,我们首先会想到离职面谈、离职调查、寻找良好的人力资源策略标杆,并为公司提出人力资源策略的调整计划。但是,在做这些事之前,我们有必要来……HR经理如何变被动为主动HR经理如何变被动为主动有一位企业的招聘经理觉得,在人力资源几个模块中(人员招聘、绩效考核、培训发展和薪酬福利),招聘工作最显被动,还得不到老板重视。只有当你招不到人时,……
中层管理之痛:温水煮青蛙力智融合在给某零售行业区域标准店进行管培生(MT)培养方式咨询交流时,设计了一组为期三个月的“温水煮青蛙”无压力培养方案,并持续每三天跟踪反馈,得到了一手的资料和结果反馈验证9……职能中层管理之痛:“监管“到”服务“今天,力智融合参加了咨询客户的年度总结和计划会议。一位职能部门负责人提出新的一年一定要让本部门从“监管”到“服务”的“意识”转变咨询客户的老板非常头疼的问我是不是该把这位“讲口……别让员工思维拉低了你管理的层次企业战略至落地执行过程中,企业高层最怕什么?一个战略在执行部门间变成了一件事儿来处理;企业中层又怕什么?一个需要运用组织能力去执行的事儿变成了一件按步骤去完成的目标;为什么这样……人治可以,不要治人文刘勇我曾经问:“管理中你是喜欢人治呢?还是法治?”几乎所有的人都说:“喜欢法治”。不论是领导身份的人,还是下属身份的人。但据我观察,几乎所有领导都有“人治”的一面……讲出你的目的,节约职场沟通时间文格总01。讲出你的目的,可以节约沟通时间朋友在一家初创公司,有一次她跟我吐槽,标题是:最糟糕的沟通可以是什么样子?那天她正忙得不行,上司带着一个人过来,说这……6。66元份子钱:“我把你当兄弟,你把我当提款机”01前阵子看到一则新闻,又是关于让人百味杂陈的份子钱。一位杨先生说,他结婚请了大学几个舍友喝喜酒,许久不见,大家聊得尽兴。其中一位李先生和其他人喝了4瓶五粮液,还带……中层管理之殇:问卷调查别乱放华山派、昆仑派、七十二洞、七侠七义各家所长,各有法宝。称得上大招的,是些什么?绝技有些什么?炫技的都死在了大师面前。相信有很多一定资历和经验的中高层管理者在管理实践中深刻……新年从用词和着装开始讲究,提升你的职场形象节日季来了,各种聚会相约就多了。前天朋友A约我吃饭,表明只能吃中餐。我奇怪,A高三就来北美,在美国读书,一直读到研究生,后来到加拿大工作,十多年在西方,现在也算在很……别人递过来的奶嘴,正在蚕食你的思考力!11995年9月27日至10月1日的美国旧金山,举行过一个关于如何应对全球化的全球会议,这次会议云集乔治布什、撒切尔夫人、比尔盖茨等500多名经济、政治界精英。此次……管理层财务管理思维,培训学习心得一、管理的认知管理,等于“管”“理”,理不清,就管不住。以前在企业工作中,经常遇到许多管理的问题,如跨部门的问题,沟通起来不是很顺畅,工作效率不高;由于前端部门工作……中层管理落地难吗?看看五棱角助力推动企业中层管理者将管理落地实施。“管理者就是负责管理他人及其工作的人”彼德德鲁克中层管理者如何看待管理实践活动?通过力智融合在某汽车经销商集团内面向中高层管理……高情商只是会说话,会随机应变!?情商现在几乎是我们每天都能见到的词,我们每天都能看到各种角度谈情商的文章,各人对情商也有不同的理解,综合来看,无非是让他人舒服,根据场合随机应变,性格随和不较劲等等。无论怎么看……
友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形