首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
Linux资讯 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux基础>基础入门>正文

Linux操作系统对虚拟内存的限制

http://www.oklinux.cn  2007-10-19  来源:  skid  会员收藏  游客收藏  【 】 

一、关于2G虚拟内存限制的说明

 

1. 早期的linux对虚拟内存的限制

linux2.2以前的内核,支持最大128M的Linux swap分区或文件。Linux swap的分区或文件总数不超过16个。

所以在linux2.2以前,可用的最大虚拟内存为128M*8=1G。

 

2. Linux2.2.x对虚拟内存的限制

Linux2.2.x支持最大2G的Linux swap分区或文件。Linux swap的分区或文件总数不超过8个。

所以在Linux2.2.x,可用的最大虚拟内存为 2G*8=16G

 

3. Linux2.4.x对虚拟内存的限制

Linux2.4.10之前支持最大2G的Linux swap分区或文件。Linux swap的分区或文件总数不超过8个。

所以在 Linux2.4.10之前,可用的最大虚拟内存为 2G*8=16G

 

Linux2.4.10(含)之后支持最大2G的Linux swap分区或文件。Linux swap的分区或文件总数不超过32个。

所以在 Linux2.4.10之后,可用的最大虚拟内存为 2G*32=64G

 

Linux2.4.x在内存管理策略上,就如Windows98向Windows2000转变一样,在内存和交换区中保存了更多的脏页,而不是及时回收内存,以此提高系统的效率。(见Widnows核心编程第18章的论述)。

 

此外,如果你有超过1块磁盘,并且分别在不同的磁盘上建立了swap,那么linux会按照raid 0的方式来使用这些交换分区。

 

二、多少虚拟内存较好?

 

1. Linux 2.2.x(含)及以前

传统的2倍虚拟内存的观点是有效的。建议按照此方法进行分配。

 

2. Linux 2.4.x(含)及以后

在考虑合适的硬盘费用的情况下,对虚拟内存的需求是多多益善。

 

Linus明确的指出,即使是512M内存,也可以分配高达40G的交换区,以提高系统的性能。Zlatko 在向Linus提出性能的质疑后,自己进行了验证。Zlatko通过实验表明:大交换区策略没有增加磁盘I/O的费用。

 

三、实例

 

一台IBM x365服务器,配置4G内存。

1. 交换区最小不低于4G

建立两个各为2G的交换区,做为基础的4G交换分区

 

2. 建立8个2G的交换文件,做为扩展的交换分区

这样总的交换分区大概在20G左右,如果硬盘更大,可以增加最多。

 

题外话:关于Windows中的虚拟内存使用

自Windows2000开始,微软也改变了内存使用策略。他们会尽可能较迟的回收内存。因此,我个人相信大的交换区,对于Windows2000以上的系统也是更有效率的。

 

附:Linus的谈话录

 

在下面的讨论中,清楚的说明了Linux2.4版本比它以前的版本需要更多的交换区。Rik val Riel提醒说:“2.4(内核) 在交换区缓存中,保持了更多的脏页,所以对于相同的程序,你需要更多的内存来运行它...”。他问Linus Torvalds,“这是一些东西,我们需要保持,或者我们将告诉用户,将要运行在某一种模式,当交换区被释放,当我们在一些非共享区进行交换时?”Linus回答:“我乐于看见用文档说明这点,并且将它保持下去。我痛恨两种不公平的行为方式。它总是建议“两倍于内存(的交换区大小)”,尽管在历史上被告知,“Linux 实际上不需要那样多”,我们在linux2.4.x中,把这种观点真正的抛弃了。

 

如果你有512M内存,你可以要求40G的交换区,他们在今天已经变得非常便宜。

 

Zlatko Calusic 担心,更大的交换区会降低性能,因为磁盘需要更多的时间进行搜索,以找到数据。他问Linus,是否确认这种现象不会发生,Linus回答:“我不 _确认_,众所周知,无论如何,我只确认一件事情,即页面缓冲的粘着性,能够使许多事情变得简化,并且使此前不可能的一些事情变得可能。”但是在最近,他补充道:“粘着建起可能会使我们的IO更为分散”。

 

Zlatko进行了一些测试,并没有发现2.4.0版本的内存管理策略有什么问题。他说道:“我发现新内核在某些环境下,会申请4倍的交换空间。这或许是,也或许不是问题,它仍然保持可见。

 

 


上一篇:Linux系统攻略 使用Script录制终端会话   下一篇:FreeNX 优秀的Linux操作系统远程桌面软件


收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·Linux系统为何会对计算机病毒免疫?
·Linux操作系统中安装网卡驱动
·Linux系统下图形界面与命令行模式的切换
·常用的正则表达式操作符介绍
·Linux系统的文件属性详细解析(二)
·Linux系统下X终端的使用方法
·Linux文件系统Ext3与ReiserFS介绍
·Linux操作系统的启动步骤说明
·Linux如何理解用数字表示文件的操作权限
·Linux 等自由软件的扩散特性
·Linux操作系统RPM与TAR的基本安装和卸载
·修改Linux系统最大打开文件数
·Linux系统 /etc/fstab各个字段含义解释
·全方位接触 Linux的声音系统
·如何查看 Ubuntu Linux 各个版本的信息
·让你知道Linux下一般软件的安装在什么目录
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·Ubuntu Linux系统的启动过程
·Ubuntu Linux系统下自启动选项设置方法
·Linux系统下文件和文件夹的复制问题
·Linux下如何解包和打包initrd image文
·虚拟机中Linux不能引导的问题
·Linux系统下修改字符集的方法
·Linux操作系统中连接库的生成
·Linux操作系统默认打开文件数
·Linux操作系统的错误诊断方法
·概括介绍Linux支持的文件系统
·Linux操作系统的RPM使用详解
·关于Linux操作系统的网卡编译
  阅读排行
·Linux的GRUB引导程序配置方法大全
·新手从零开始:Linux系统命令的使用
·Linux下tar bz gz等压缩包的压缩和解压
·从硬盘启动Desktop ISO所需的引导文件
·Linux系统面面观 PROC文件系统详细介绍
·Unix Shell程序编写的方法详解
·深入理解软件包的配置、编译与安装方法
·Linux操作系统下关于引导和初始化的问
·Linux操作系统的命令分类介绍
·Linux基础知识普及 理解GNU/Linux含义
·新手看招 Unix和Linux下C语言学习指南
·Linux命令Man解释Lilo:安装引导装载程
·Linux系统的文件属性详细解析(二)
·Linux下挂载硬盘光驱和U盘的方法
·在Redhat AS4中加载NTFS分区的方法详解
网摘收藏: