如何从 RAM 运行完整的应用程序?

如何从 RAM 运行完整的应用程序?

可能重复:
我可以将所有 RAM 用作应用程序数据吗?

当我在后台执行某些操作(解压、编译、备份等)时,我的硬盘处于负载状态,例如,Firefox 和 Chromium 需要很长时间才能启动并且反应非常慢。

当我的硬盘处于负载之下时,我仍然有足够的可用 RAM 和可用 CPU。

如何将整个 Firefox 或 Chromium 包括所有依赖项复制到 RAM 中?

我不在乎持久性,我只想查看一些网站,视频等。

有一些指令将缓存放入 /dev/shm,但速度并没有提高多少。将配置文件放入 RAM 驱动器可能也很容易……但如何将具有所有依赖项的二进制文件放入 RAM?

答案1

您不需要将所有依赖项复制到 RAM 中,因为现代应用程序不会同时加载其所有功能。它们会在必要时从磁盘加载它们。

是的,系统有时可能会使用 HDD 来腾出足够的 RAM 空间,以便可以加载可能需要更多 RAM 的其他应用程序。因此,它使用一项称为“交换”的功能。

“交换”很好,因为它可以让你同时加载更多应用程序。但它占用硬盘,这是一个缓慢的过程。

因此,如果您认为您有足够的 RAM 根本不使用交换,那么您可以完全禁用交换。

暂时禁用交换sudo swapoff -a在终端中运行此命令并按回车键。

如果你想永久禁用交换,请执行以下操作

  • 打开终端并运行sudo gedit /etc/fstab
  • 小心地删除包含单词的行swap。保存并退出 gedit。
  • 重新启动并再次登录。

注意:您应该备份/etc/fstab文件,以便在出现问题时可以恢复。

备份sudo cp /etc/fstab /etc/fstab.backup

恢复sudo cp /etc/fstab.backup /etc/fstab

希望这会有所帮助

答案2

内存管理由操作系统本身处理。它安排所有进程以相同的时间执行。这是多处理操作系统的基础。

此外,将进程的多少数据加载到 RAM 中由应用程序决定。如果应用程序需要的内存多于可用内存,则操作系统会通过将部分内存写入虚拟页面(Linux 系统中的 SWAP 空间)来处理。(搜索Paging technique of OS)。因此,如果您有足够的内存,请确保操作系统按照应用程序的请求正确使用它。

因此基本上您无法将任何东西复制到 RAM。(另外 RAM 驱动器是什么?)写入 RAM 是由操作系统完成的。

我对此表示怀疑there are plenty free CPU while the background task is running。可能你误解了某件事。

最后,您可以使用该命令来更改进程的优先级,以便 CPU 为该进程提供更多时间。renice或者nice。但是,当您更改优先级时,系统可能会冻结/崩溃,行为不稳定。

答案3

Linux 内核会自动将正在使用的文件加载到 RAM 中,因此按照您的要求做不会有任何特别的好处。当您编译或执行其他重负载进程时,您所描述的是 CPU 瓶颈(处理能力)。最好的解决方案是尝试赋予每个作业的优先级 - 具体来说,将“后台”作业设置为占用更少的 CPU,但需要更多时间才能完成。

这可以通过使用‘nice’命令来实现: http://manpages.ubuntu.com/manpages/oneiric/man2/nice.2.html

答案4

  • 启动任何应用程序启动密集进程(编译)。这样,它们将已经加载到 RAM 中,并且响应速度会更快。

  • 降低 swappiness 以避免使用 swap,从而减少磁盘使用量。请注意,更改 swappiness 不会不是禁用交换文件,只会让内核在决定将内容移至交换时更加保守。非常低的交换率将使内核不使用交换,除非您绝对、肯定没有 RAM。http://en.wikipedia.org/wiki/Swappiness

  • nice使用和启动密集型进程ionice以降低其 CPU 和 I/O 优先级,这应该可以让交互式应用程序更灵敏。阅读man niceman ionice以了解这两个实用程序的作用。

    nice -n 19 ionice -c2 -n7 your-intensive.process

相关内容