Linux服务器分配真实与虚拟内存给处理器,通过交换管理内存使用率。明白Linux内存类型以及处理器如何共享内存有助于优化内存使用率。 从Linux内核start-up执行程序进程分配内存,需要虚拟内存总和。Linux上的虚拟内存是无限的,处理器在启动时就能分配内存。
Linux内核映射通过交换能分配虚拟内存到实际内存。 与Windows不同,内存交换会让程序慢下来,Linux内存交换是有益的,这得感谢Linux分析进程所分配的内存页使用的方式。Linux内核运行最近使用算法,确定哪些内存页需要进入RAM哪些不需要。某些情况下,让Linux内核交换更快速能提升内存性能。
一个程序的进程通常需要比……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
Linux服务器分配真实与虚拟内存给处理器,通过交换管理内存使用率。明白Linux内存类型以及处理器如何共享内存有助于优化内存使用率。
从Linux内核start-up执行程序进程分配内存,需要虚拟内存总和。Linux上的虚拟内存是无限的,处理器在启动时就能分配内存。Linux内核映射通过交换能分配虚拟内存到实际内存。
与Windows不同,内存交换会让程序慢下来,Linux内存交换是有益的,这得感谢Linux分析进程所分配的内存页使用的方式。Linux内核运行最近使用算法,确定哪些内存页需要进入RAM哪些不需要。某些情况下,让Linux内核交换更快速能提升内存性能。
一个程序的进程通常需要比实际需求更多的虚拟内存。在Linux的顶级程序中,虚拟内存需求出现在VIRT与常驻内存(RAA)卷中。当进程开始使用分配给的内存页做事时,页面移到RAM,作为RSS显示。监控Linux内核内存使用率让管理员只保留这些频繁使用的内存页。不常使用的存取页可通过内核或交换丢弃。
Linux服务器上的进程使用匿名内存,与代码以及数据相关的文件内存。匿名内存必须直接可用,因此,如果内存资源有压力,标注为匿名内存的页就应该进行交换。
数据内存又是另一回事了。当一个进程从磁盘读数据时,保留在缓存中,允许在下次需要数据时进程快速提供数据。在内存压力下,内核可以丢弃数据内存。移动未使用的文件内存到交换是没有性能益处的,丢弃是个更好的选择。
在决定丢弃或交换内存时,Linux内核区分活跃与不活跃内存。如果不活跃的内存近期未用,那么将其移到交换或直接丢弃显然没有害处。/proc/meminfo文件显示匿名与文件内存的活跃与不活跃内存之间的差别,如下图1所示。
图1:来自Linux内核活跃内存与不活跃内存的差别
[root@IAD ~]# less /proc/meminfo
MemTotal: 7971636 kB
MemFree: 2653648 kB
Buffers: 250868 kB
Cached: 2974052 kB
SwapCached: 0 kB
Active: 2530380 kB
Inactive: 2323604 kB
Active(anon): 1633532 kB
Inactive(anon): 125712 kB
Active(file): 896848 kB
Inactive(file): 2197892 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 10059772 kB
SwapFree: 10059772 kB
Dirty: 132 kB
Writeback: 0 kB
AnonPages: 1629052 kB
Mapped: 162396 kB
Shmem: 130192 kB
Slab: 296332 kB
SReclaimable: 233344 kB
SUnreclaim: 62988 kB
在这个例子中,有大量活跃的匿名内存,少量的不活跃匿名内存。如果系统处于内存压力下,内核将移动125MB的不活跃匿名内存到交换。不应该交换标志为活跃页内存的1.6GB内存,因为内存页经常需要在RAM与磁盘之间移动,这样就会降低性能。如果过交换的量大于不活跃(匿名)内存,你应该添加更多RAM优化Linux内存页。
对于理想的Linux内存页,实际使用的交换总量不应该多余不活跃(匿名)内存页的量。活跃(文件)内存的量等于内核所需的缓存内存的量。否则,就不能提升服务器性能。
当内核需要更多内存时,标志为不活跃的文件内存将被丢弃。由于Linux内核无法更好处理,那么不活跃文件内存保留在缓存中。如果数据丢弃也不会有影响。
翻译
相关推荐
-
托管OpenStack私有云能够获得支持or单打独斗?
OpenStack私有云托管作为一种服务可以简化企业的部署和运营,并强调了云计算的优势,而非Linux的优化……
-
为私有云实施做准备:调整你的服务器
为了向私有云服务迈进,IT团队首先需要评估其当前的数据中心基础设施,从服务器处理器、内存和存储支持开始。
-
模糊的边界:内存和存储以全新方式融合
软件定义的存储刚刚开始形成,然而系统演进的步伐已经使得未来技术的创新越来越受到关注……
-
从零开始构建属于自己的Linux发行版
当你从头开始构建Linux,就可以充分和完整地了解Linux平台。Linux管理员在IT界内更神秘,因为他比其他任何IT专业人员都更了解计算机内部工作。