![出于测试目的,有没有办法“限制”Linux 上可以同时发出多少 I/O 请求?或者针对某一特定应用](https://linux22.com/image/189538/%E5%87%BA%E4%BA%8E%E6%B5%8B%E8%AF%95%E7%9B%AE%E7%9A%84%EF%BC%8C%E6%9C%89%E6%B2%A1%E6%9C%89%E5%8A%9E%E6%B3%95%E2%80%9C%E9%99%90%E5%88%B6%E2%80%9DLinux%20%E4%B8%8A%E5%8F%AF%E4%BB%A5%E5%90%8C%E6%97%B6%E5%8F%91%E5%87%BA%E5%A4%9A%E5%B0%91%20I%2FO%20%E8%AF%B7%E6%B1%82%EF%BC%9F%E6%88%96%E8%80%85%E9%92%88%E5%AF%B9%E6%9F%90%E4%B8%80%E7%89%B9%E5%AE%9A%E5%BA%94%E7%94%A8.png)
这是一个棘手的问题,我不知道如何称呼发生的事情,这似乎与“密集的磁盘活动导致多线程应用程序锁定”有关。
或者“CPU 使用率高时 I/O 磁盘锁定”。
我在 Debian Buster 中遇到 I/O 磁盘问题。 (MX Linux)这很奇怪,因为我什至不知道如何描述这个问题,当你不知道到底要搜索什么时,很难寻找解决方案。
似乎还有其他使用 Debian 的人也抱怨严重的 I/O 问题。 (也有很多年了)
有东西“锁定”了整个 I/O 系统。
我在 Manjaro 中没有遇到这些问题,所以这似乎是 Debian 本身的问题。尝试了不同的 vm.dirty_xx 值组合,高、低、高和低交换性,所有组合,没有区别。尝试使用 ionice -c 2 命令,没有区别。
就我而言,当我尝试加载 Cities Skylines 时,这是一个出现问题的 C#/DotNet 应用程序(DotNet 游戏将占用您的所有内存和交换空间,无论您拥有多少内存和交换空间)
包含更多上下文详细信息的屏幕截图:
https://i.stack.imgur.com/8xfZq.jpg
如果有人知道我可以与 C# 应用程序一起使用的命令行启动参数,以便进行更多测试,或者以某种方式限制其所需的磁盘线程数量,那就太好了。磁盘似乎被请求淹没了,看起来就是这样。