Question

I have three applications running on a beefy machine at the same time (32GB memory) and 32 CPUs. The three applications have to run in parallel. Two of these applications are C applications and they are IO intensive (they are constantly writing a large amount of data to the disk). The third application is a java application which basically reads the files written by the first two applications and write different files. I can run each application smoothly without problems but when I try to run the three together, it seems that CPU% usage of the first applications are high and the CPU% usage for the third application shows as 0%. I am using Ubuntu linux. I am trying to give equal process priority to these applications. Any idea what the problem is?

Was it helpful?

Solution

OK I will answer my question in case someone comes across the same issue. My problem is I had an unfair disk scheduler. For Linux, there are many types of IO schedulers (deadline, cfq, noop). CFQ is a fair scheduler and it is the default in many linux distributions...except mine I guess! I changed the scheduler to CFQ and now it is working fine. You can check your current scheduler using the command

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

You can set your IO scheduler using the command

 echo cfq > /sys/block/{device name}/queue/scheduler
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top