Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 什么是活动内存和非活动内存_Linux - Fatal编程技术网

Linux 什么是活动内存和非活动内存

Linux 什么是活动内存和非活动内存,linux,Linux,什么是活动内存和非活动内存?我在Linux机器上执行命令vmstat-a,得到以下输出: vmstat -a procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free inact active si so bi bo in cs us sy id wa st 1 0 249900 4801880 2649428 824

什么是活动内存和非活动内存?我在Linux机器上执行命令
vmstat-a
,得到以下输出:

vmstat -a
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
 1  0 249900 4801880 2649428 8246152    0    0    42    31    0    0  4  0 95  0  0
但我没有得到什么确切的积极和消极的记忆是。。。您能详细说明一下吗?

内存有两种状态“已用”、“未激活”和“激活”

活动内存是特定进程正在使用的内存。
非活动内存是分配给不再运行的进程的内存。是“最近”未被访问的页面

要查看内存,请使用
/proc/meminfo
而不是
vmstat-a

cat /proc/meminfo  
当系统重新启动时,您无需清除此非活动内存。此内存自动消失,但如果您有大量非活动内存,则可以使用以下命令

free && sync && echo 3 > /proc/sys/vm/drop_caches && echo "" && free
编辑 根据@kubanczyk评论:
你可以从

中找到更多信息,我不认为这是一个编程问题,真的。真的?尝试在8GBs的生产系统上运行SOLR,并负责生产服务器。然后,您将真正需要了解活动/非活动内存的行为以及它可能导致的原因(在SOLR情况下是内存不足异常)。理解操作系统基础知识是软件开发的关键部分。你可以精通软件模式,缺乏特定平台的知识将使你成为普通的初级用户,没有任何成功解决方案的机会。我认为OSP想标记为@unwind。我自己还想补充一点,系统编程的概念,如活动/非活动内存,可以与API相比较。这是内核提供的一个接口,可用于在用户空间中进行决策(例如,有一个uswapd用户空间守护进程,它可能对此类系统范围的概念感兴趣),您可以拯救我的日常工作人员。我已经寻找这个解决方案好几个星期了。我尝试了所有的方法来优化我的服务器,正是不活动的内存让我头疼。非常感谢您提供有关如何释放非活动内存的命令。现在我恢复了大部分非活动内存。非活动内存会导致什么问题?难道操作系统不会根据需要将它们分配给需要它们的进程,从而有效地使非活动内存与空闲内存相同吗?是的,当没有足够的空闲内存时,操作系统会为进程分配非活动内存。这是我们第一次启动应用程序时,操作系统会为它们分配内存。当我们关闭这些应用程序时,分配给这些应用程序的内存不会被释放,而是将其标记为非活动。之后,如果你重新打开关闭的应用程序,操作系统会将非活动内存标记为活动。这会提高速度。在某些情况下,例如当你有8GB的RAM时,如果你只有200MB的可用内存和3GB的非活动内存,那么你的系统将没有响应,在这种情况下,释放未使用和非活动内存将起作用。错,错,错。这个答案充满了事实错误:“非活动内存[属于]一个不再运行的进程“错误”,有两种已用内存状态“错误,删除缓存以清除非活动内存错误”。@kubanczyk可以自由编辑答案。谢谢你指出错误。