java - 对三个不同的应用程序给予同等的优先级

标签 java c performance ubuntu hard-drive

我在一台强大的机器(32GB 内存)和 32 个 CPU 上同时运行三个应用程序。这三个应用程序必须并行运行。其中两个应用程序是 C 应用程序,它们是 IO 密集型的(它们不断地将大量数据写入磁盘)。第三个应用程序是一个java应用程序,它基本上读取前两个应用程序编写的文件并写入不同的文件。我可以顺利地运行每个应用程序,没有任何问题,但是当我尝试同时运行这三个应用程序时,似乎第一个应用程序的 CPU% 使用率很高,而第三个应用程序的 CPU% 使用率显示为 0%。我使用的是Ubuntu Linux。我试图对这些应用程序给予同等的处理优先级。知道问题出在哪里吗?

最佳答案

好的,如果有人遇到同样的问题,我会回答我的问题。我的问题是我有一个不公平的磁盘调度程序。对于Linux来说,IO调度器有很多种类型(deadline、cfq、noop)。 CFQ 是一个公平的调度程序,它是许多 Linux 发行版中的默认调度程序……我想除了我的发行版!我将调度程序更改为 CFQ,现在它工作正常。 您可以使用命令检查当前的调度程序

 cat /sys/block/{device name}/queue/scheduler

您可以使用命令设置 IO 调度程序

 echo cfq > /sys/block/{device name}/queue/scheduler

关于java - 对三个不同的应用程序给予同等的优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21123972/

相关文章:

java - IntelliJ - 运行程序

java - 以不同的方式重用相同的功能

java - 使用 Thread.sleep() 框架上出现白屏

C89 与 c99 GCC 编译器

c - 从 char 指针数组中释放内存

java - 获取嵌套的 Hashmap 值

c - 将数组作为数组与作为指针传递给函数

sql - MySQL MyISAM 表性能问题重温

mongodb - 为聚合查询调整 AWS DocumentDB(MongoDB 兼容)集合的最佳策略是什么

node.js - BrowserSync 非常慢