位置: 编程技术 - 正文

Linux交换空间的管理与技巧详解(linux交换空间的作用)

发布时间:2024-02-26

推荐整理分享Linux交换空间的管理与技巧详解(linux交换空间的作用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux交换空间不足的原因,linux的交换空间是什么意思,linux交换空间不足的原因,Linux交换空间的作用是什么,linux交换空间怎么设置大小,linux 交换空间使用率高,linux交换空间的作用,linux的交换空间是什么意思,内容如对您有帮助,希望把文章链接给更多的朋友!

本文详细介绍了Linux交换空间的管理与技巧,有助于读者深入了解Linux交换空间的原理与使用,具体详情如下:

一、UNIX如何使用交换空间

所有 UNIX 操作系统都支持某种虚拟内存 (VM) 系统。使用 VM 系统,您有两个主要区域来存储有关活动应用程序及其使用的数据的信息——物理随机访问存储器 (RAM) 和硬盘驱动器上分配的空间。

在具有 VM 的计算机中,可加载到内存中的应用程序和数据量可以大于物理 RAM,因为没有活动地使用的应用程序和信息被交换 到了磁盘上(交换空间 这个术语由此得名)。

VM 系统的优点在于,物理 RAM 得到了更有效的利用——这是因为它仅包含正在执行的应用程序和正在使用的数据。由于 RAM 比硬盘空间快,您从活动地加载的应用程序中获得了所需的性能,同时还得益于能够运行比通常所支持的更多的应用程序。

其结果是您获得了大得多的可寻址内存空间(在 为系统上为 4GB,在 位系统上则更大),从而使得应用程序开发更加容易,同时仍然提供高性能。

二、设置交换空间值

您在计算机上配置的交换空间量主要取决于应用程序和操作系统。如果交换空间太小,则可能无法运行您希望运行的所有应用程序,而如果交换空间太大,则可能在浪费那些从未使用的磁盘空间。您可能还会间接地使得系统过载,因为与太小的交换空间相比,太大的交换空间会导致糟糕的性能,这是由于与系统执行实际处理所花的时间相比,它在换入和换出页面上所花的时间更多。

不同的 UNIX 变体以不同的方式使用它们的交换空间。有些变体仅在已经使用完物理内存时才使用交换空间。其他变体则对所有非活动的应用程序和未使用的页面使用交换空间。有些变体保留所有应用程序中的数据副本——同时包括内存和交换空间中的应用程序。缺省情况下,有些变体避免使用交换空间,并尽可能提供某种机制来允许您调整交换空间的使用方式。许多变体使用这些不同安排的组合来充分利用它们的交换空间。

例如在 Linux® 中,当您使用 2.6 内核时,可以通过设置 /etc/sysctl.conf 中的 vm.swappiness 值来调整系统的 swappiness。较高的值导致交换更多页面,较低的值导致将更多应用程序保留在内存中(即使这些应用程序处于空闲状态)。

除了这些基础之外,还有许多关于应该如何配置 VM 和应该分配多少磁盘空间的观点和规则。下面总结了其中一些方法:1. 有些管理员认为,您的交换空间决不应该少于物理 RAM。由于其中的 VM 使用方式,这是较旧的 UNIX 版本(尤其是 SunOS)的一个要求。从理论上讲,拥有比物理 RAM 更多的 VM 可以使操作系统能够在系统变得空闲时将所有当前进程换出到磁盘上,并且能够提高系统的性能,因为可以将新进程直接加载到 RAM 中,而不必预先交换应用程序。2.对于开发系统,许多管理员都赞成应该有与 RAM 一样多的 VM。采用这种方法的原因在于,交换空间还在系统故障期间用作转储活动内存的位置;然后可以在启动期间重新加载所存储的内存转储,并将其保存为内核核心文件。如果所配置的交换空间小于物理 RAM,此类转储就无法实现。3.在高性能部署环境中,由于您只希望将应用程序活动地保留在内存中,并且不需要大量的交换,您可以配置尽可能小的 VM。崩溃恢复不是必需的,而确定物理 RAM 的潜在缺乏(由于交换空间用尽)的能力可以提供警告,使您知道应用程序环境未得到优化或者您需要升级 RAM。4.对于桌面环境,拥有非常大的 VM 分配可能对您有利,因为它使您能够运行大量的应用程序(其中许多应用程序可能是空闲的,可以容易地交换,从而使更多 RAM 对活动应用程序可用)。

选择正确的交换空间量很大程度上取决于您所配置的平台——其预期用途和您希望如何处理可用 VM 缺乏的情况。

下面是一些保守值:1. 在桌面系统上,至少分配与物理 RAM 一样多的交换空间。2. 在服务器上,至少分配可用 RAM 的 % 作为交换空间。一旦头脑中有了大体数字,您就需要配置交换空间。

三、配置交换空间

所有 UNIX 系统都有多种类型的交换空间。主交换空间是通常在启动时配置的交换空间,并且通常是作为操作系统安装的一部分来设置的。所有 UNIX 系统通常都有一个主交换空间分配。

交换空间的创建和配置方式随不同的系统而异。在 Linux 下,用于交换的磁盘分区是通过分区 ID 来标识的,该分区必须通过 mkswap 命令来初始化:

复制代码代码如下:$ mkswap /dev/sda2在大多数传统 UNIX 环境中,您可以使用任何可用分区而无需进行任何准备工作。在 HP-UX、AIX® 和 Linux 上,您可以使用 swapon 命令来将分区添加到可用的交换空间: 

复制代码代码如下:$ swapon /dev/sda2在 Solaris 上,您可以使用 swap 命令来将交换空间添加到系统:

复制代码代码如下:$ swap -a /dev/dsk/c0t0d0s2请注意,以这种方式添加的交换空间在重新启动后不会保留。若要永久地将交换空间添加到系统,您必须配置启动配置文件之一来自动启用交换空间分配。

四、添加启动时交换空间

在大多数 UNIX 变体下,交换空间都是作为内核初始化的一部分在启动时自动添加的。大多数变体使用文件系统安装文件(/etc/fstab、/etc/vfstab 或 /etc/filesystems)中的行来指定要用作交换空间的分区。您可以从 Solaris 的 /etc/vfstab 文件中看到这样一个示例

在 Solaris 中指定要用作交换空间的分区:

复制代码代码如下:#device device mount FS fsck mount mount#to mount to fsck point type pass at boot options#fd - /dev/fd fd - no -/proc - /proc proc - no -/dev/dsk/c0d0s1 - - swap - no -/dev/dsk/c0d0s0 /dev/rdsk/c0d0s0 / ufs 1 no -/dev/dsk/c0d0s7 /dev/rdsk/c0d0s7 /export/home ufs 2 yes -/devices - /devices devfs - no -ctfs - /system/contract ctfs - no -objfs - /system/object objfs - no -swap - /tmp tmpfs - yes -

下面显示了 Linux 中的 /etc/fstab 文件示例

复制代码代码如下:# <fs> <mountpoint> <type> <opts> <dump/pass>/dev/sda1 /boot ext2 noauto,noatime 1 1/dev/sda3 / ext3 noatime 0 0/dev/sda2 none swap sw 0 0/dev/hda1 /var/lib/mysql ext3 noatime 1 2/dev/hdb1 /export/data ext3 noatime 1 2/dev/hde1 /export/home ext3 noatime 1 2/dev/hde2 /var/tmp ext3 noatime 1 2/dev/hde3 /usr/portage/distfiles ext3 noatime 1 2/dev/hde4 /tmp ext3 noatime 1 2 /dev/cdroms/cdrom0 /mnt/cdrom iso noauto,ro 0 0none /proc proc defaults 0 0

最后,您可以在 AIX 中使用 /etc/swapspaces 文件来配置交换空间分区

复制代码代码如下:* This file is modified by the chps, mkps and rmps commands and referenced* by the lsps and swapon commands. hd6: dev = /dev/hd6 paging: dev = /dev/paging paging: dev = /dev/paging

Linux交换空间的管理与技巧详解(linux交换空间的作用)

您应该使用对应的命令或 Smitty 工具来修改该文件内容,而不要直接编辑该文件。

若要删除额外的交换空间,您可以使用对应的 swapoff 或 swap -d 命令来禁用该交换分区。然而要注意,您只能禁用当前未使用的交换分区,并且不能禁用主交换分区。

五、添加临时交换容量

有时您可能会用尽已配置的交换空间分区,从而在短时间内需要更多 VM,直到您能够组织某种更永久性的解决方案。如果有某个分区可用,您可以按照上面在配置交换分区部分中的介绍来准备它。

如果没有空余的分区可用,您可以创建一个或多个文件,并将它们临时添加到可用交换池中。大多数系统甚至允许您在 NFS 安装的文件系统上使用交换文件,当您没有本地磁盘空间可用时,就可以使用这样的文件系统。

若要将文件用于交换空间,请首先创建一个适当的文件。mkfile> 命令在这里最合适,因为它提供了创建大型文件的简单方法。您可以在命令行指定文件名和文件大小:

复制代码代码如下:mkfile m /export/data/swapfile

然后可以像添加分区一样添加该文件:

复制代码代码如下:$ swap -a /export/data/swapfileor 复制代码代码如下:$ swapon /export/data/swapfile

以这种方式使用的交换文件通常决不是针对交换空间问题的长期解决方案。您应该尽快为交换空间配置专用分区。

六、监视交换空间使用情况

交换空间及其使用情况的监视包括两个方面:当前使用情况和活动使用情况。您可以在各种 UNIX 变体中找到一批不同的工具,它们报告可用空闲内存和 VM 使用情况以及当前使用情况。

在 Solaris 下,swap 工具提供了大多数交换接口功能,包括报告使用情况和可用设备。例如,若要获得已配置的交换设备列表,如在 Solaris 下监视交换空间使用情况

复制代码代码如下:$ swap -lswapfile dev swaplo blocks free/dev/dsk/c0d0s1 ,1 8

在 AIX 下,您可以使用 lsps 工具来获得同样的信息

复制代码代码如下:$ lsps -a Page Space Physical Volume Volume Group Size %Used Active Auto hd6 hdisk0 rootvg MB 3 yes yes

在 Linux 下,您可以使用 swapon 工具

复制代码代码如下:$ swapon -sFilename Type Size Used Priority/dev/sda2 partition -1

在上述每个示例中,您都可以看到可用交换空间位置列表及其用途,并大致了解交换空间的当前使用量情况。

这些快照视图非常有用,但它们仅显示了当前使用情况。其中有关交换空间的定期或全面使用情况的信息非常少。出于性能的考虑,或者在诊断您怀疑可能与交换空间有关的问题时,您通常需要内存和分页使用情况的更加交互式的视图。

七、活动 VM 监视

vmstat 命令可以提供虚拟内存使用情况的长期视图,包括提供有关交换空间与 RAM 之间正在活动地交换的内存量的信息。在命令行上,您需要指定要在报告统计信息时使用的间隔(以秒为单位)。结果输出显示了大量的信息,并且可用于做出有关 VM 配置和分配的决策。

下面显示了针对 Solaris 计算机的输出示例(间隔为五秒)

复制代码代码如下:kthr memory page disk faults cpur b w swap free re mf pi po fr de sr cd cd cd cd in sy cs us sy id0 0 0 9 0 1 0 3 0 0 0 0 0 0 0 8 3 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 5 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 5 0 0 6 0 0 0 0 0 0 0 0 0 0 2 0 0 9 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 5 0 0 0 6 0 0 1 8 8 0 0 7 0 0 0 8 0 0 9 9 0 0 0 0 0 8 0 0 2 0 0 0 0 2 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 6 0 0 2 1 1 0 0 3 0 0 0 1 7 0 0 0 0 0 0 0 0 0 0 0 1 5 0 0 0 0 0 0 0 0 0 0 1 6

其中存在许多列——有些列比另一些列更重要。关键的列包括:* swap——显示可用的总交换空间* free——显示空闲的交换空间量* pi——换入的千字节数* po——换出的千字节数* fr——空闲的千字节数

非常低的空闲空间量和较高的换入或换出页数可能表明 VM 不足,非常高的换入和换出页数可能表明物理 RAM 不足。

八、将交换空间用于临时存储

在某些 UNIX 变体下,特别是 Solaris 和 Linux,您可以使用 tmpfs 文件系统;该文件系统使用 VM 作为存储空间。当您有充足的 RAM 时,这提供了支持超快速磁盘访问的理想方法;未使用的文件将交换到磁盘上。其结果是实现了快速访问最常用文件的高效解决方案,并且它可以显著提高应用程序速度,例如软件开发,其中要在编译过程期间创建大量的临时文件。

xfs文件系统提示没有磁盘空间错误的解决方法 日前,同事反馈一个问题:在一个大分区(T)中使用xfs文件系统,用来做历史文件备份,突然提示没有磁盘空间错误,先检查下:复制代码代码如下:[root

XFS文件系统简介 Linux中使用XFS文件系统的配置方法 XfS文件系统是SGI开发的高级日志文件系统,XFS极具伸缩性,非常健壮。所幸的是SGI将其移植到了Linux系统中。在linux环境下。目前版本可用的最新XFS文件

让gzip压缩速度加快的解决方案:使用支持多核CPU多线程并发压缩的pigz pig是个啥东东?官网:

标签: linux交换空间的作用

本文链接地址:https://www.jiuchutong.com/biancheng/356893.html 转载请保留说明!

上一篇:linux su命令的真正含义(linuxsu命令作用)

下一篇:让gzip压缩速度加快的解决方案:使用支持多核CPU多线程并发压缩的pigz(gzip压缩慢)

  • 分公司开专票需要缴税
  • 小规模纳税人场地租赁
  • 滴滴的普票可以抵税吗
  • 加盟费是怎么回事
  • 航空运单可以作为提货凭证吗
  • 行政单位特殊人工手机电话费是否可以报销
  • 委托加工农产品的扣除率
  • 退回多交的所得税怎么做分录小规模
  • 增值税发票地址变更后开原来的地址能用吗
  • 计提销项税的同类有哪些
  • 小规模纳税人隔月可以作废发票吗
  • 个人所得税退税截止日期2023
  • 货物返利怎么做分录
  • 小微企业免税销售额一栏怎么填
  • 分步法所分的成本计算步骤应是实际的生产步骤
  • 生产成本明细账怎么填图片
  • 带息的应付票据计算的利息计入财务费用
  • 其他权益工具投资属于什么科目
  • 其它权益工具投资处置时其他综合收益转那
  • 公司账户收款退回怎么退
  • win11右键菜单怎么恢复
  • 固定资产计提折旧的原则
  • 没有利润,能否开发票
  • chrome插件api
  • 电子退库款
  • 注意力机制cbam
  • 收到投资款的会计科目怎么入账
  • 苗木增值税税率
  • python2打包
  • 劳务分包的形式有哪些
  • 利润表的格式分为哪几种
  • 客户的赔偿金会计分录
  • 先付款后开票怎么做账务处理
  • mysql数据类型怎么判断
  • mongodb部署安装
  • 旅行社的增值税税率
  • sql server定时作业
  • access的使用教程
  • 外购产品捐赠
  • 低值易耗品摊销计入什么科目
  • 投资性房地产转固定资产账务处理
  • 应付账款的入账价值应当包括增值税的进项税额
  • 税收制度政策
  • 留存收益怎么做
  • 专利财政补贴
  • 商业汇票的票样
  • 帮对方代垫运费计入什么科目
  • 没有进货发票可以开票吗?
  • 固定资产的处理方法
  • 企业坏账准备提取的方法和提取的比例由国家统一规定
  • 施工单位月末都需要结转什么
  • 冲减和冲销的会计分录
  • 开票金额含税金的计算方法
  • 月底计提工资的会计处理
  • 表空间 数据库
  • 笔记本没有光驱怎么加装固态硬盘
  • windows 安装源
  • win10开始菜单怎么居中
  • xp系统回收站的东西删除了怎么找回来
  • 怎么让微软账户获得所有权限
  • win8无线连接不可用怎么办
  • Win7系统打开D盘文件后怎么没有后退箭头
  • Win10最新版下载天翼云盘
  • opengl入门教程(精)
  • 备份mbr引导
  • cocos2d-js-min.js
  • java物流管理系统
  • jquery从入门到精通
  • node web 框架
  • 杀掉进程windows
  • node.js利用cas实现单点登录
  • android屏幕尺寸适配
  • Python使用QQ邮箱发送Email的方法实例
  • unity2020怎么导入资源
  • android.net.wifi
  • 玉林税务局班子成员
  • 吉林省工伤保险咨询电话
  • 行政机关吗
  • 高新区税务局发工资时间
  • 北京市国家税务局发票查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号