要深入了解linux内存运行机制,需要知道下面提到的几个方面:
首先,Linux系统会不时的进行页面交换操作,以保持尽可能多的空闲物理内存,即使并没有什么事情需要内存,Linux也会交换出暂时不用的内存页面。这可以避免等待交换所需的时间。

其次,linux进行页面交换是有条件的,不是所有页面在不用时都交换到虚拟内存,linux内核根据”最近最经常使用“算法,仅仅将一些不经常使用的页面文件交换到虚拟内存,有时我们会看到这么一个现象:linux物理内存还有很多,但是交换空间也使用了很多。其实,这并不奇怪,例如,一个占用很大内存的进程运行时,需要耗费很多内存资源,此时就会有一些不常用页面文件被交换到虚拟内存中,但后来这个占用很多内存资源的进程结束并释放了很多内存时,刚才被交换出去的页面文件并不会自动的交换进物理内存,除非有这个必要,那么此刻系统物理内存就会空闲很多,同时交换空间也在被使用,就出现了刚才所说的现象了。关于这点,不用担心什么,只要知道是怎么一回事就可以了。

最后,交换空间的页面在使用时会首先被交换到物理内存,如果此时没有足够的物理内存来容纳这些页面,它们又会被马上交换出去,如此以来,虚拟内存中可能没有足够空间来存储这些交换页面,最终会导致linux出现假死机、服务异常等问题,linux虽然可以在一段时间内自行恢复,但是恢复后的系统已经基本不可用了。
因此,合理规划和设计linux内存的使用,是非常重要的.

最新文章

  1. PHP API接口测试小工具
  2. SVN使用教程总结
  3. mysql导sql脚本
  4. Java 集合系列 08 Map架构
  5. 【Shell脚本学习8】Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
  6. 查看mssql死锁的详细信息(存储过程)
  7. Create a commit using pygit2
  8. jQuery旋转插件jqueryrotate 图片旋转
  9. cursor的形状
  10. HDU1258 Sum it up
  11. C#入门经典(第五章-1)
  12. maven多模块项目聚合
  13. NDK中android.mk文件的简单介绍和第三方库的调用
  14. JAVA基础知识总结:九
  15. css中单位 px、em 的区别【转载】
  16. thinkphp5使用PHPExcel导入Excel数据
  17. React教程(一) React介绍与搭建
  18. linux 使用sh@d0ws0cks server
  19. js对象的创建
  20. Python学习笔记【第七篇】:文件及文件夹操作

热门文章

  1. Shell脚本编程30分钟入门(小结)(转)
  2. Linux命令——mount、umount
  3. thymeleaf模板、thymeleaf语法相关中文文档教程
  4. MySQL/MariaDB数据库的触发器
  5. 使用flannel+canal实现k8s的NetworkPolicy
  6. SQL进阶系列之4HAVING字句的力量
  7. Kotlin属性引用详解
  8. AD域与信任关系
  9. tornado处理跨域问题
  10. openjdk k8s port-forward 连接容器jmx服务