
本文摘要:交流空间的观点和作用:当内存不足的时候,把一部门硬盘空间虚拟成内存使用,从而解决内存容量不足的情况,如果系统内存不足时,操作系统先把内存中暂时不用的数据,存到硬盘的交流空间,腾出内存来让此外法式运行。
交流空间的观点和作用:当内存不足的时候,把一部门硬盘空间虚拟成内存使用,从而解决内存容量不足的情况,如果系统内存不足时,操作系统先把内存中暂时不用的数据,存到硬盘的交流空间,腾出内存来让此外法式运行。虚拟内存和物理内存/交流空间之间的关系交流空间设置巨细:只参考物理内存巨细,红帽官方给的建议是,如果不计划开启休眠功效,物理内存在2G以下,则交流空间设置巨细是物理内存的两倍。如果物理内存在2GB和8GB之间,则交流空间设置巨细和物理内存相等,如果物理内存大于8GB,则交流空间至少需要4GB。在实际的产物情况,除了参考物理内存的巨细,还要思量实际运行的法式,通常在测试情况得出一个合理的交流空间巨细。
对系统工程师来说,如果业务部门没有特殊要求交流空间的巨细,通常只凭据物理内存的巨细设置交流空间,如果在业务运行当中发现交流空间不足,这时需要增加交流空间的巨细。红帽官方建议设置交流空间巨细检察交流空间信息:通常在产物情况,操作系统都是在运行在多用户非图形化下令行模式,我们可以在终端通过执行特定的下令检察交流空间信息,下面以RHEL/CentOS系统为例。
通过检察 /proc/swaps文件内容和执行下令swapon -s下令都可以看到系统当前的交流空间所在的dm设备,但它不适合人类阅读,通过检察dm设备的映射关系,我们可以找到dm设备对应的LVM逻辑分区,同时也可以通过文件系统分区表/etc/fstab来检察交流空间对应的分区信息,free下令可以显示交流空间的巨细和使用量。[root@linuxabc ~]# cat /proc/swapsFilename Type Size Used Priority/dev/dm-1 partition 1261564 0 -2[root@linuxabc ~]# swapon -sFilename Type Size Used Priority/dev/dm-1 partition 1261564 0 -2[root@linuxabc ~]# ls -l /dev/mapper/ |grep dm-1lrwxrwxrwx. 1 root root 7 Dec 7 17:51 cs-swap -> ../dm-1[root@linuxabc ~]# lvsLV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convertroot cs -wi-ao---- <19.79gswap cs -wi-ao---- 1.20g[root@linuxabc ~]# grep -i swap /etc/fstab/dev/mapper/cs-swap none swap defaults 0 0[root@linuxabc ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 12G 0 disk├─sda1 8:1 0 1G 0 part /boot└─sda2 8:2 0 11G 0 part├─cs-root 253:0 0 19.8G 0 lvm /└─cs-swap 253:1 0 1.2G 0 lvm [SWAP][root@linuxabc ~]# free --help |egrep 'mebibytes|gibibytes'-m, --mebi show output in mebibytes-g, --gibi show output in gibibytes[root@linuxabc ~]# free -mtotal used free shared buff/cache availableMem: 3709 392 2942 9 374 3075Swap: 1231 0 1231[root@linuxabc ~]# free -gtotal used free shared buff/cache availableMem: 3 0 2 0 0 3Swap: 1 0 1查找当前使用交流空间最多的历程:要相识当前哪些历程的内存区域使用的交流空间最多,请将这些下令复制并粘贴到bash下令行终端上,然后按<Enter>执行:ps ax -o pid,args | grep -v '^ PID'|sed -e 's,^ *,,' > /tmp/ps_ax.outputecho -n >/tmp/resultsfor swappid in $(grep -l Swap /proc/[1-9]*/smaps ); doswapusage=0for x in $( grep Swap $swappid 2>/dev/null |grep -v '\W0 kB'|awk '{print $2}' ); dolet swapusage+=$xdonepid=$(echo $swappid| cut -d' ' -f3|cut -d'/' -f3)if ( [ $swapusage -ne 0 ] ); thenecho -ne "$swapusage kb\t\t" >>/tmp/resultsegrep "^$pid " /tmp/ps_ax.output |sed -e 's,^[0-9]* ,,' >>/tmp/resultsfidoneecho "top swap using processes which are still running:"sort -nr /tmp/results | head -n 10上述剧本的执行效果显示当前使用交流空间最多的10个历程,并按交流空间使用量的降序排序,此剧本通常不显示某个历程正在使用的总交流空间。如果您杀死了其中的这些历程,您会发现交流空间使用量将淘汰,被杀死的历程可能是直接的孝敬者,也可能是高交流使用率的基础原因的受害者。
注1:如果上面的剧本没有生成任何输出,那么可能是/proc/*/smap中当前正在运行的历程都没有使用swap。可以使用下面的下令举行简朴的测试:# grep Swap /proc/[1-9]*/smaps需要记着的重要一点是,上述剧本将只显示在剧本运行时在该时间点交流空间的运动历程,很有可能系统已经交流了一块空间,这在free下令的输出上是可见的,可是剧本没有显示任何输出。
重点是,此剧本显示当前交流运动,不能用于历史数据收集,你可以使用sar下令检察swap的历史使用情况。注2:要将显示的历程数更改为10以外的值,请将“tail-10”修改为所需的数目。注3:在2.6.18-128.el5(RHEL 5更新3)之前的内核版本中,无法知道历程使用了几多交流空间。因此,在任何先前的RHEL版本中(所有RHEL 3、RHEL 4和RHEL 5,直到RHEL 5更新2),用于确定单个历程使用几多交流空间的须要内核代码都不存在。
注4:也可以通过运行top下令并在输出中添加SWAP列来实现。要添加此列,请按f键,然后根据提示选中SWAP,人们可能希望这个字段显示法式交流了几多。遗憾的是,top使用以下公式在本机显示此信息。
VIRT = SWAP + RES or equalSWAP = VIRT - RESVIRT/RES/SHR寄义刷新交流空间:使用以下下令可以刷新交流空间:# swapoff -a# swapon -a警告:以这种方式刷新交流空间将强制交流空间的全部内容返回主内存。如果您的系统内存已经不足,这可能会导致它进入内存不足的状态(OOM)。在使用此选项之前,应适当注意和思量。如果系统内存不足,则可能需要在将交流空间内容放入内存时先接纳内存,这可能会在短时间内降低性能。
增加物理内存:在某些情况下,交流空间用完后会导致发抖(频繁的交流入/出运动)。当系统中存在sar文件(文件位于/var/log/sa中,必须安装sysstat包而且sysstat服务正在事情)而且sar文件包罗一连的pswpin和pswpout记载。它表现系统在当前事情负载中没有足够的物理内存。
系统需要分外的系统内存,其巨细至少为当前总交流空间的巨细。发抖通常会导致系统性能下降,因为发抖会导致大量磁盘I/O。
使用SSD的系统可能不会泛起这种系统性能下降。[root@linuxabc ~]# sar -W12:00:00 AM pswpin/s pswpout/s <snip>05:20:00 AM 0.21 0.0005:30:00 AM 0.08 0.8505:40:00 AM 0.47 0.0005:50:00 AM 3.58 1.7106:00:00 AM 2.48 0.0006:10:00 AM 39.91 7.1706:20:00 AM 0.21 2.7206:30:00 AM 13.30 1.04增加交流空间巨细:方法一:通过添加一个SWAP文件来增加交流空间的方法如下:以兆字节(MB)为单元确定新交流文件的巨细,并乘以1024来确定块巨细。例如,64 MB交流文件的块巨细为65536。
在shell提示符下以root用户身份键入以下下令,count即是所需的块巨细:# dd if=/dev/zero of=/swapfile bs=1024 count=65536将权限更改为“仅由root用户可读写”:# chmod 600 /swapfile使用以下下令生成交流文件:# mkswap /swapfile要立刻启用交流文件,而不是在启动时自动启用,请执行以下操作:# swapon /swapfile要在引导时启用它,请编辑/etc/fstab以包罗以下内容,新的交流文件将在下次系统引导后启用。/swapfile swap swap defaults 0 0添加新的交流文件并启用后,通过以下下令的输出验证是否已启用该文件。
# swapon -s# cat /proc/swaps# free方法二:通过添加一个逻辑分区来增加交流空间的方法如下:建立LVM逻辑卷,例如使用1GB(-L 1G)。VolGroup00是在其中建立LV LogVol02的vg名称# lvcreate VolGroup00 -n LogVol02 -L 1G设置新交流空间的花样:# mkswap /dev/VolGroup00/LogVol02将以下条目添加到/etc/fstab文件:/dev/VolGroup00/LogVol02 swap swap defaults 0 0启用扩展逻辑卷:# swapon -a5要测试逻辑卷是否已乐成建立,请执行以下下令之一:# swapon -s# cat /proc/swaps# free方法三:扩展交流空间的逻辑分区来增加交流空间的方法如下:关闭交流空间后扩展交流分区,然后重新生产交流分区,最后开启交流空间。- swapoff- lvresize- mkswap- swapon当交流空间将要耗尽,触发监控系统告警,如果可用的内存大于交流空间,可以刷新交流空间来释放交流空间的使用量,如果可用内存和交流空间将要耗尽,直接刷新交流空间可能会导致系统挂起,系统工程师首先要查找使用交流空间最多的历程,通常是和业务相关的历程,并和业务运维人员确认,尽快重启业务历程释放内存,否则系统会逐步变慢,并触发OOM机制,系统开始自动杀死占用内存大的历程,最后要凭据实际情况增加交流空间或物理内存。
#LinuxABC#。
本文关键词:澳门威斯尼斯人wns888入口