I/O 使机器屈服

I/O 使机器屈服

为什么在我使用过的每个 Linux 上,当一个程序确实受 I/O 限制时,它会使机器陷入困境?当我(不小心)尝试编译gcc一个(有效!)50Mb C 文件时,就发生了这种情况。 GCC 的 I/O 非常密集,导致机器瘫痪。

另一个时刻是当apt-get或类似的正在下载软件包时,有时我什至无法同时访问互联网,所有请求都会超时。

在 Windows 上,操作可能不速度很快,但至少进程之间可以共享 I/O 时间。

这是因为设计决定吗?如果是的话,我可以改变这种行为吗?

请不要将此视为对 Linux 的批评

答案1

抱歉,这个问题太宽泛,无法解决。我们只能在这里真正处理具体问题。发生这种情况的原因有很多。通常,糟糕的性能只是被用户误解。

  • 系统内存不足吗?
  • 它的硬盘速度慢吗?
  • 系统设置不是最佳的吗?

我并不是简单地驳回你的问题,而是在我的职业生涯中我做了相当多的基准测试,当你把一个所谓的性能问题分解为具体问题时,总会有一个原因,而且一旦你分解问题,它通常是显而易见的进入其离散的部分。

为了进一步调试这个“问题”,我们必须卷起袖子,首先开始深入研究:

  • 确定系统的其余部分在此事件期间正在做什么。
  • 有足够的 RAM 可用吗?
  • 是否正在使用交换?
  • 是否有其他进程竞争系统上的有限资源?
  • 实际对“慢速”运行过程进行计时并比较运行时间的感知差异
  • 我的流程试图使用哪些资源?硬盘?内存?多少?

这个列表可以一直列下去,但在确定问题的解决方法之前,您需要诊断这些类型的事情。

相关内容