如何优化Linux系统的交换空间和内存管理 (linux swap mem)

在Linux服务器中,内存和交换空间是系统运行必不可少的两个部分。优化系统的内存管理和交换空间是确保系统高效工作的关键步骤。本文将讨论关于如何优化Linux系统的内存管理和交换空间的一些技巧和步骤。

1.调整交换空间大小

交换空间用于暂时存储不再使用内存的进程和数据。然而,如果交换空间设置过小,系统的一些进程可能会被迫过早地被杀死,执行效率可能会大幅下降。

一般来说,如果内存的总量小于等于2GB,则应将交换空间设置为内存大小的2倍;而如果内存的总量大于2GB,则建议将交换空间设置为2GB+内存大小的一半。

在调整交换空间大小之前,建议先运行free -h或top -n 1看看当前的内存使用率。如果内存使用率过高,则需要优化内存管理;如果内存使用率较低,则可以适量减少交换空间大小。

2.启用透明大页支持

传统的大页面由于会导致内存碎片化和缺页调度的开销,而不利于内存管理的优化。而透明大页(Transparent Huge Page)则可以在不增加缺页调度的惩罚和写时复制(Copy-On-Write)开销的同时,有效地优化内存管理。

启用透明大页支持可以极大地提升内存管理的效率,降低CPU使用率和延迟时间。可以通过cat /sys/kernel/mm/transparent_hugepage/enabled来查看透明大页的使用状态。而可以通过修改/sys/kernel/mm/transparent_hugepage/enabled文件来启用透明大页。

3.禁用内存泄漏进程

内存泄漏进程是指内存管理存在漏洞,导致某些进程长时间占用大量内存的现象。这些进程会严重危及系统的性能和稳定性。因此,禁用内存泄漏进程对于优化内存管理至关重要。

可以使用一些工具和命令来查找和杀死内存泄漏进程。例如,可以通过ps命令查看内存使用更大的进程,或者使用top命令来查看系统中CPU、内存和I/O等的运行情况。

4.使用进程控制器

进程控制器是一种用于控制进程的工具。它可以帮助我们调整进程的CPU使用率、内存限制以及其他资源限制等。

常用的进程控制器有cgroups和systemd。cgroups是Linux内核通过管理组限制进程资源使用的机制。而systemd是进程管理器和初始化系统,还可以与cgroups一起使用,控制每个进程使用的资源量。

5.优化内核参数

内核参数可以控制系统的一些基本设置,包括内存缓存、文件打开限制、文件句柄数、网络缓存和协议栈等设置。通过优化这些内核参数,可以提高系统的性能和稳定性,影响内存管理和交换空间的优化。

一些常用的内核参数包括vm.swappiness、vm.dirty_background_ratio和vm.overcommit_memory等。vm.swappiness参数控制交换空间的使用情况。而vm.dirty_background_ratio和vm.overcommit_memory参数可以控制内存使用情况。

6.使用优化工具

使用一些优化工具可以帮助我们更快速和方便地进行内存管理和交换空间的优化。

常用的优化工具包括sar、top、htop、vmstat、ss、lsof等。这些工具可以帮助我们实时地监控系统状态、筛选出不必要的进程和服务等。

Linux系统的内存管理和交换空间对于系统的性能和稳定性至关重要。通过调整交换空间大小、启用透明大页支持、禁用内存泄漏进程、使用进程控制器和优化内核参数等方法,可以有效地优化系统的内存管理和交换空间。同时,使用优化工具可以帮助我们快速地监控系统状态,及时调整系统配置,提高Linux服务器的运行效率和稳定性。

相关问题拓展阅读:

linux安装如何分区?如何手动分区?为什么?

linux下,建议新手分区时只分两个:一个“SWAP”分区,大小为内存的两倍,一个“/”分区大小为全部可用空间。

这里把Linux分区问题详细地介绍一下,以Red Hat Linux7.1为例。

首先我们要对硬盘分区的基本概念进行一些初步的了解,硬盘的分区主要分为基本分区

(Primary Partion)和扩充分区(Extension Partion)两种,基本分区和扩充分区的数目之

和不能大于四个。且基本分区可以马上被使用但不能再分区。扩充分区必须再进行分区后才

能使用,也就是说它必须还要进行二次分区。那么由扩充分区再分下去的是什么呢?它就是

逻辑分区(Logical Partion),况且逻辑分区没有数量上限制。

对习惯于使用Dos或Windows的用户来说,有几个分区就有几个驱动器,并且每个分区都

会获得一个字母标识符,然后就可以选用这个字母来指定在这个分区上的文件和目录,它们

的文件结构都是独立的,非常好理解。但对这些用户初上手Red Hat linux吗, 可就有点恼

人了。因为对Red Hat linux用户来说无论有几个分区,分给哪一目录使用, 它归根结底就

只有一个根目录,一个独立且唯一的文件结构。 Red Hat linux中每个分区都是用来组成整

个文件系统的一部分,因为它采用了一种叫“载入”的处理方法,它的整个文件系统中包含了

一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的

存储空间在一个目录下获得。下面我们先来看看Red Hat linux的驱动器是如何标识的。

对于IDE硬盘,驱动器标识符为“hdx~”,其中“hd”表明分区所在设备的类型,这里是

指IDE硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),

“~”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑

分区。例,hda3表示厅缓祥为之一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个

IDE硬盘上的第二个主分区或扩展分区。对于SCSI硬盘则标识为“sdx~”,SCSI硬盘是用

“sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样,不哪厅在多说。

我们从上面可以看到,Red Hat linux的分区是不同于其它操作系统分区的, 它的分区

格式只有Ext2和Swap两种,Ext2用于存放系统文件,Swap则作为Red Hat linux的交换分区。

那么现在我们就可以知道Red Hat linux至少需要两个专门的分区(Linux Native和Linux

Swap)况且不能将Red Hat linux安装在Dos/Windows分区。一般来说我们将Red Hat Linux

安装一个或多个类型为“linux Native”的硬盘分区, 但是在Red Hat Linux的每一个分区

都必须要指定一个“Mount Point”(载入点),告诉Red Hat linux在启动时,这个目录要

给哪个目录使用。对“Swap”分区来说,一般定义一个且它不必要定义载入点。 下面我们先

对“linux Native”和“Linux Swap”有个初步的了解。

*SWAP分区是LINUX暂时存储数据的交换分区,它主要是把主内存上暂时不用得数据存起

来,在需要的时候再调进内存内,且作为SWAP使用的分区不用指定“Mout Point”(载入点),

既然它作为交换分区,我们理所当然应给它指定大小,它至少要等于系统上实际内存的量,

一般来说它的大小是内存的两倍。具体如下:当顺利启动了安装过程后,会显示一个boot:提示符,

这时你只要键入boot:linux mem=1024MB就可以了(假定你的电脑内存为512MB)。另外你也可以创建和使用一个以上的交换

分区,最多16个。

*linux Native是存放系统文件的地方,它只能用EXT2的分区类型,上面已说过。对

Windows用户来说,操作系统必须装在同一分区里,它是商业软件吗!所以你没有选择的余地!

对Red Hat linux来说,你有了扮搏较大的选择余地,你可以把系统文件分几个区来装 (必须要

说明载入点),也可以就装在同一个分区中(载入点是“/”)。 下面我们看看可以创建哪些

分区(仅列常用几种)。

/boot分区,它包含了操作系统的内核和在启动系统过程中所要用到的文件, 建这个分

区是有必要的,因为目前大多数的PC机要受到BIOS的限制,况且如果有了一个单独的/boot启

动分区,即使主要的根分区出现了问题,计算机依然能够启动。

/usr分区,是Red Hat linux系统存放软件的地方,如有可能应将更大空间分给它。

/home分区,是用户的home目录所在地,这个分区的大小取决于有多少用户。 如果是多

用户共同使用一台电脑的话,这个分区是完全有必要的,况且根用户也可以很好地控制普通

用户使用计算机,如对用户或者用户组实行硬盘使用,限制普通用户访问哪些文件等。

其实单用户也有建立这个分区的必要,因为没这个分区的话,那么你只能以根用户的身份登

陆系统,这样做是危险的,因为根用户对系统有绝对的使用权,可一旦你对系统进行了误操

作,麻烦也就来了。

/var/log分区,是系统日志记录分区,如果设立了这一单独的分区,这样即使系统的日

志文件出现了问题,它们也不会影响到操作系统的主分区。

/tmp分区,用来存放临时文件。这对于多用户系统或者网络服务器来说是有必要的。这

样即使程序运行时生成大量的临时文件,或者用户对系统进行了错误的操作,文件系统的其

它部分仍然是安全的。因为文件系统的这一部分仍然还承受着读写操作,所以它通常会比其

它的部分更快地发生问题。

/bin分区,存放标准系统实用程序。

/dev分区,存放设备文件。

/opt分区,存放可选的安装的软件。

/in分区,存放标准系统管理文件。

上面介绍了几个常用的分区,一般来说我们需要一个SWAP分区,一个/boot分区,一个

/usr分区,一个/home 分区,一个/var/log分区。当然这没有什么规定,完全是依照你个人

来定的。但记住至少要有两个分区,一个SWAP分区,一个/分区。下面我们来看看怎样分区。

用户可以使用两种分区工具:

1.Disk Druid:它是Red Hat linux提供的硬盘管理工具, 它最初是随Red HatLinux5

一起发售的,它可以根据用户的要求创建和删除硬盘分区,另外还可以为每个分区管理载入

点,这是一个不错的分区软件,建议读者使用。本文也将以此软件详细地介绍Red Hat linux

分区。

2.Fdisk:它是传统的linux硬盘分区工具,比Disk Druid更强大,使用更加灵活。 但

是Fdisk要求用户对硬盘分区有一定经验,并能够适应且读懂简单的文本界面。 如果你是第

一次对一个硬盘驱动器进行分区操作的话,更好还是避免Fdisk这样的程序, 它虽然强大但

用起来的感觉不是太好的。

附注:此外Red Hat linux还提供了一种叫fips的分区软件, 但这种分区软件具有一定

的危险性,不宜提倡操作。虽然有许多人已经成功地用fips对他们的硬盘进行了分区,但这

不能保证fips将在你的系统中也能正常地运行。况且Red Hat linux也不提供对fips的支持,

劝你对这种分区软件还是慎用为好。

如果你希望将Red Hat linux安装在已经含有其他操作系统的盘上, 也就是多重操作系

统,这个情况就比较复杂了,因为一个错误就可以毁掉你辛辛苦苦保存的数据,让你欲哭无

泪。如果你想让Red Hat linux与OS/2共存,那你必须使用OS/2的分区软件来创建硬盘分区,

要不然OS/2将不能识别硬盘分区。另外你也可以用其它的一些分区软件来分区,下面列出了

一些常见的这种分区工具软件:

*Partition Commander软件,从

www.v-com.com

处下载。

*partition It软件,从

www.quarterdeck..com

处下载。

*partition Magic软件,从

www.powerquest.com

处下载。

注意:硬盘分区是一个非常危险的步骤,你要想安全地在不丢失数据的情况下改变磁盘

的分区有点不太现实,所以我建议大家对重要得数据进行备份,装多操作系统更要如此,以

备不测。当然或许你是刚装系统或就准备重装,那也就是另外一回事了,但是大家对待分区

一定要慎重又慎重,切记。

下面我们详细地了解一下Red Hat linux7.1自带的Disk Druid分区软件所包含的一些信息。

1.Current Disk Partitions区域(这里每一行代表了一个硬盘分区)

Mount Point 指出Red Hat linux启动并运行以后该分区的加载点,交换空间

(linux swap)是不需要加载点的。

Device 硬盘分区的设备名

Requeted 给这个分区定义时申请的最小空间

Actual 分配给该分区的实际空间

Type 说明了该分区的类型

2.Drive Summaries区域(这里每一行代表一个硬盘)

Drive 显示硬盘的设备名

Geom 显示硬盘的物理信息,C(柱面),H(磁头),S(扇区)

Total 显示硬盘的可用空间

Used 显示硬盘中已分配的空间

Free 显示硬盘中末分配的空间

Bar Graph 该条图形化地显示当前硬盘使用的百分比,#号越少,空闲空间越多

3.Disk Druid按钮

Add 增加一个分区

Edit 修改在Current Disk Partitons中被选中的分区的属性, 选中该按钮将出现一个

对话框来进行修改,但只能修改该分区的载入点。如果你需要修改其它内容,请先

删除该分区,而后再重新建这分区。

Delete 删除一个在Current Disk Partitons中被选中的分区

Ok 确认

Back 不作保存,返回

4.如果你想增加一个分区,请点击“add”按钮,这时会出现一对话框,内容说明如下:

Mount Point 分区载入点,说明分区

Size 分区的大小

Grow to fill disk 表明这个分区将添满一个硬盘的整个未分配空间。这时,这个分区

的容量可以随着其它分区的修改增加或减少

Type 选择分区类型

Allowable Drives 选择这个分区将创建在哪个硬盘上

好了,通过上面的了解想必大家都能容易地创建出适合自己的分区。下一步我们所要做

的工作就是要格式化所建的分区,选择你要格式化的分区并按Space键, 如果想在格式化分

区时检查有无坏块,选择“Check for bad blocks during format”,点击OK并按Space键。如

果分区中已无你要所保存的数据,更好都格式化一下。

看郑春一配丛消看视培知频教程吧

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

内存是Linux内核所管理的最重要的资源之一。内存管理系统是操作系统中最为重要的部分,因为系统的物理内存总是少于系统所需要的内存数量。虚拟内存就是为了克服这个矛盾而采用的策略。系统的虚拟内存通过在各个进程之间共享内存而使系统看起来有多于实际内存的内存容量。Linux支持虚拟内存, 就是使用磁盘作为RAM的扩展,使可用内存相应地有效扩大。核心把当前不用的内存块存到硬盘,腾出内存给其他目的。当原来的内容又要使用时,再读回内存。以下就是我为大家整理到的详细LINUX系统内存管理的知识,欢迎大家阅读!!!

  

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

  

一、内存使用情况监测

  (1)实时监控内存使用情况

  在命令行使用“Free”命令可以监控内存使用情况

  代码如下:

  #free

  total used free shared buffers cached

  Mem:

  -/+ buffers/cache:

  Swap:72

  上面给出了一个256兆的RAM和512兆交换空间的系统情况。第三行输出(Mem:)显示物理内存。total列不显示核心使用的物理内存(通常大约1MB)。used列显示被使用的内存总额(第二行不计缓冲)。 free列显示全部没使用的内存。Shared列显示多个进程共享的内存总额。Buffers列显示磁盘缓存的当前大小。第五行(Swap:)对对换空间,显示的信息类似上面。如果这行为羡芹全0,那么没使用对换空间。在缺省的状态下,free命令以千字节(也就是1024字节为单位)来显示内存使用情况。可以使用—h参数以字节为单位显示内存使用情况,或者可以兄晌使用—m参数以兆字节为单位显示内存使用情况。还可以通过—s参数使用命令来不间断地监视内存使用情况:

  #free –b –s2

  这个命令将会在终端窗口中连续不断地报告内存的使用情况,每2秒钟更新一次。

  (2)组合watch与 free命令用来实时监控内存使用情况:

  代码如下:

  #watch -n 2 -d free

  Every 2.0s: free Fri Jul 6 06:06:

  total used free shared buffers cached

  Mem:64784

  -/+ buffers/cache:

  Swap:15928

  watch命令会每两秒执行 free一次,执行前会清除屏幕,在同样位置显示数据。因为 watch命令不会卷动屏幕,所以适合出长时间的监测内存使用率。可以使用 -n选项,控制执行的频率;也可以利用 -d选项,让命令将每次不同的地方显示出来。Watch命令会一直执行,直到您按下 – 为止。

  

二、虚拟内存的概念

  (1)Linux虚拟内存实现机制

  Linux虚拟内存的实现需要六种机制的支持:地址映射机制、内存分配回收机制、缓存和刷新机制、请求页机制、交换机制、内存共享机制。

  首先内存管理程序通过映射机制把用户程序的逻辑地址映射到物理地址,在用户程序运行时如果发现程序中要用的虚地址没有对应的物理内存时,就发出了请求页要求;如果有空闲的内存可供分配,就请求分配内存(于是用到了内存的分配和回收),并把正在使用的物理页记录在缓存中(使用了缓存机制)。 如果没有足够的内存可供分配,那么就调用交换机制,腾出一部分内存。另外在地址映射中要通过TLB(翻译后援存储器)来寻找物理页;交换机制中也要羡派锋用到交换缓存,并且把物理页内容交换到交换文件中后也要修改页表来映射文件地址。

  (2)虚拟内存容量设定

  也许有人告诉你,应该分配2倍于物理内存的虚拟内存,但这是个不固定的规律。如果你的物理保存比较小,可以这样设定。如果你有1G物理内存或更多的话,可以缩小一下虚拟内存。Linux会把大量的内存用做Cache的,但在资源紧张时回收回.。你只要看到swap为0或者很小就可以放心了,因为内存放着不用才是更大的浪费。

  

三、使甩vmstat命令监视虚拟内存使用情况

  vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。通常使用vmstat 5 5(表示在5秒时间内进行5次采样)命令测试。将得到一个数据汇总它可以反映真正的系统情况。

  代码如下:

  #vmstat 5 5

  procemoryswapiosystemcpu—-

  r b swpd free buff cache si so bi bo in cs us sy id wa

54 2

  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:

  代码如下:

  # ps v

  PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND

tty1 Ss+ 0:8 0.1 /in/mingetty tty1

tty2 Ss+ 0:8 0.1 /in/mingetty tty2

tty3 Ss+ 0:2 0.1 /in/mingetty tty3

tty4 Ss+ 0:8 0.1 /in/mingetty tty4

tty5 Ss+ 0:2 0.1 /in/mingetty tty5

tty6 Ss+ 0:4 0.1 /in/mingetty tty6

tty7 Ss+ 1:.0 /usr/bin/Xorg :0 -br -a

pts/2 Ss 0:1496 0.6 -bash

pts/4 Ss 0:1472 0.6 /bin/bash

pts/4 S+ 0:48 0.2 ping 192.168.1.12

pts/2 R+ 0:68 0.3 ps v

  然后如果想回收Ping命令的内存的话,使用命令:

  代码如下:

  # Kill

  使用工具软件

  Memprof是一个非常具有吸引力且非常易于使用的软件,它由Red Hat的Owen Talyor创立。这个工具是用于GNOME前端的Boehm-Demers-Weiser垃圾回收器。这个工具直接就可以执行,并且其工作起来无需对源代码进行任何修改。在程序执行时,这个工具会以图形化的方式显示内存的使用情况。

  相关介绍:Linux

  严格来讲,Linux这个词本身只表示Linux内核,但人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。

  Linux拥有以下特性:类似于Unix的基本思想,支持完全免费与自由传播,完全兼容POSIX1.0标准,支持多用户、多任务、有着良好的界面、支持多种平台。Linux 能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

linux查看内存使用情况

linux查看内存使用情况的方法是,1,proc。meminfo,查看 RAM 使用情况最简单的方法是通过 ,procmeminfo。

这个动态更新的虚拟文件实际上是许多其他内存相关工具 free ,ps ,top的组合显示。

2,atop。atop 命令是一个终端环境的监控命令。它显示的是各种并枯系统资源,CPU, memory, network, IOkernel的综合,并且在高负载的情况下进行了彩色标注。

3,free。free 命令是一个快速查看内存使用情况的方法,它是对 ,proc,meminfo 收集到的信息的一个概述。

4,GNOME System Monitor。GNOME System Monitor 是一个显示最近一段时间内的 CPU内存交换区及网络的使用情况的视图工具。它还提供了一种查绝腊洞看 CPU 及内存使用情况的方法。

5,htop。htop 命令显示了每个进程的内存实时使用率。它提供了所有进程的常驻内存大小,程序总内存大小,共享库大小等的报告,列表可以水平局数及垂直滚动。6,KDE System Monitor功能同 4 中介绍的 GENOME 版本。

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。

可以直接使用top命令后,查看%MEM的内容,可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令$top-uoracle。

内容解释PID进程的ID,USER进程所有者,PR进程的优先级别,越小越优先被执行,NInice值,VIRT进程占用的虚拟内存,RES进程占用的物理内存,SHR进程使用的共享内存,S进程的状态,S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数。

%CPU进程占用CPU的使用率,%MEM进程使用的物理内存和总内存的百分比,TIME+该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值,COMMAND进程启动命令名称。

在命令行中输入top,即可启动top,top的全屏对话模式可分为3部分系统信息栏、命令输入栏、进程列表栏。

之一部分最上部的系统信息栏,之一行top00:11:04为系统当前时刻,3:35为系统启动后到现在的运作时间,2users为当前登录到系统的用户,更确切的说是登录到用户的终端数–同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目。

loadaverage为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值带宏汪超过CPU数目时,CPU将比较吃力的负载当前系统所包含的进程。

第二行Tasks,59total为当前系统进程总数,1running为当前运行中的进程数,58sleeping为当前处于等待状态中的进程数,0stoped为被停蠢仔止的系统进程数,0zombie为被复原的进程数。

第三行Cpus,分别表示了CPU当前的使用率,第四行Mem分别表示了内存总量、当前使用量、空闲内存量、以及缓冲使用中的内存量,第五行Swap表示类别同第四行Mem,但此处反映着交换分区Swap的使用情况,通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。

第二部分中间部分的内部命令提示栏top运行中可以通过top的内部命令对进程的显示方式进行控制,内部命令如下表,s改变画面更新频率,l关闭或开启之一部分之一行top信息的表示,t关闭或开启之一部分第二行Tasks和第三行Cpus信息的表示,m关闭或开启之一部分第四行Mem和第五绝旁行Swap信息的表示。

N以PID的大小的顺序排列表示进程列表第三部分后述,P以CPU占用率大小的顺序排列进程列表第三部分后述,M以内存占用率大小的顺序排列进程列表第三部分后述,h显示帮助,n设置在进程列表所显示进程的数量,q退出top,s改变画面更新周期。

第三部分最下部分的进程列表栏以PID区分的进程列表将根据所设定的画面更新时间定期的更新,通过top内部命令可以控制此处的显示方式pmap可以根据进程查看进程相关信息占用的内存情况,进程号可以通过ps查看如下所示$pmap-d5647。

ps如下例所示$ps-e-o’pid,comm,args,pcpu,rsz,vsz,stime,user,uid’其中rsz是是实际内存,$ps-e-o’pid,comm,args,pcpu,rsz,vsz,stime,user,uid’|greporacle|sort-nrk,其中rsz为实际内存,上例实现按内存排序,由大到小。

在Linux下查看内存我们一般用free命令#free,totalusedfreesharedbufferscached,Mem:68236,-/+buffers/cache:,Swap:68116。

下面是对这些数值的解释total总计物理内存的大小,used已使用多大,free可用有多少,Shared多个进程共享的内存总额,Buffers/cached:磁盘缓存的大小,第三行-/+buffers/cached,used已使用多大,free:可用有多少。

Linux的特点

Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托瓦兹在1991年10月5日首次发布,在加上用户空间的应用程序之后,成为Linux操作系统,Linux也是自由软件和开放源代码软件发展中最著名的例子,只要遵循GNU通用公共许可证,任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。

大多数Linux系统还包括了像提供GUI界面的X Window之类的程序,除了一部分专家之外,大多数人都是直接使用Linux发布版,而不是自己选择每一样组件或自行设置,以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。

linux查看内存使用情况方法:

工具/原料:苹果笔记本,Linux操作系统。

方法/步骤:

1、在电脑中进码镇入Linux操作系统,打开Linux命令界面。

2、在Linux命令界面中输入cat /proc/meminfo命令后,敲击键键盘回车哗芹键。

3、在敲击完回车键后,出现MemTotal和MemFree分别就可以查看内存使用情况和空闲内存了。

关于linux swap mem的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 如何优化Linux系统的交换空间和内存管理 (linux swap mem)