热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

两个措施补救Linux系统swap分区太小问题

文章标题:两个措施补救Linux系统swap分区太小问题。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

    为了突破物理内存的限制,在操作系统中实现了“虚拟内存”技术。它使得应用程序可以操纵大于实际物理内存的空间。而且虚拟内存可以用来隔离每个进程,成为进程的安全保护网,使得每个进程都不受其他程序的干扰。如果swap空间不够会产生什么负面作用呢?简单的来说,如果系统的物理内存用光了,系统就反映速度会变得很慢,但是操作系统仍能运行;如果Swap空间用光了,那么系统就会发生错误。例如,Web服务器能根据不同的请求数量衍生出多个服务进程或线程,如果Swap空间用完,则服务进程无法启动,就会出现swap空间不足的错误,严重时会造成服务进程的死锁。可见Swap空间的分配是很重要的。如果swap空间太小会造成应用程序错误,而不光光是性能下降的问题。

  在Linux系统下,这个虚拟内存就被叫做swap。在安装操作系统的时候,安装向导会提示用户需要创建多少的swap空间。通常情况下,swap比较合适的大小为物理内存的1-2倍。但是有些应用程序的话,对于swap分区比较饥渴,如JAVA或者Oracle应用程序,他们要求swap分区的大小能够达到物理内存的2倍以上。此时原先在安装系统的时候为其分配的swap分区就太小了。那么该如何补救呢?

  笔者以前就遇到过类似的问题。有一台Linux服务器,上面已经部署了文件服务器。后来出于部署ERP系统的需要,要在这台服务器上部署一个Oracle数据库系统。不过Oracle数据库系统对swap的空间有要求。如果不满足这个要求的话,Oracle操作系统无法安装。而笔者不能够通过重装Linux服务器的方式来扩展swap空间,因为上面还运行着文件服务器。为此笔者只好通过其他途径来实现这个需求了。针对这种情况,Linux系统提出了两种补救措施,分别为创建新的swap空间和创建swap 文件。笔者是通过创建swap文件的方式来调整swap空间的。如上图所示,笔者就在home目录下创建了一个swap文件,并且通过启动配置文件让其随着系统的启动而自动启用。如此配置之后,Oracle数据库系统就可以顺利安装了。

  这两种调整方式的具体的实现方式如下所示。

   


    
    措施一:创建新的swap空间,增加swap容量。

  如果在Linux服务器的硬盘中还有比较多的空余容量,或者系统管理员添置了新硬盘,此时就可以利用Linux系统自带的fdisk硬盘格式化工具,来创建新的swap分区。具体的操作如下:

  第一步:创建新的分区。如笔者在服务器硬盘中还有一个20G的分区没有使用过,就可以利用fdisk磁盘格式化工具,来创建新的分区。具体fdisk命令的使用方法大家可以参考其它的相关资料,笔者在这里就不过多展开了。在使用这个工具的时候,如果要把分区设置为swap分区,则需要注意要把空间设置为扩展分区。然后再在扩展分区上设置一个逻辑分区。如此的话,为后续维护与管理提供了方便。如管理员可以陆续增加swap空间等等。

  第二步:将分区的文件系统设置为swap文件系统。

  默认情况下系统新增加的分区其文件格式为ext3。为了让这个分区成为swap分区,则需要把这个分区的文件格式改为swap文件系统。这个任务也是在fdisk命令中完成。如果要把这个分区格式改为swap,则在fdisk命令执行时,当提示hex code时,系统管理员需要输入swap文件系统的代号。通常情况下swap文件系统的代号为82。然欧再继续后续的工作。如果不修改的话,则系统默认会采用ext3文件系统格式。

  第三步:格式化并启动swap分区格式。当fdisk命令执行完毕后,还必须重新启动计算机,刚才的设置才会生效。但是,fdisk命令只是划分出了一个swap分区,系统还是无法使用这个分区,因为这个分区还没有格式化与启动。与微软操作系统一样,当划分出一个分区之后,系统管理员还需要格式化这个分区。为此,系统管理员需要通过mkswap命令来对刚才划分的swap分区进行格式化。不过与微软操作系统不同的是,对分区格式化之后,这个新的分区默认情况下是没有启动的,第一次需要通过系统管理员手工启动它。此时系统管理员需要采用的命令是swapon,来启动swap分区。

  通过以上简单的三个步骤,就可以在硬盘为用的空间中或者新添加的硬盘中增加一个swap分区,以实现扩大swap分区容量的目的。不过这里需要注意一点,在使用fdisk工具的时候,会把目标空间中的内容都删除。为此只有当目标空间中没有存储文件或者存储的文件不再需要时才使用这种方法。如果现在系统中没有未使用的空间;但是已有的分区中则有多余的空间,则就需要采用另外一种方法,即通过增加swap文件的方式来调整swap空间容量。

[1] [2] 下一页


推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文主要讨论了在xps15上安装双系统win10和MacOS后,win10无法正常更新的问题。分析了可能的引导问题,并提供了解决方法。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
author-avatar
帕格迪奥
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有