But there is a way to specify the CPU and bind your process into a CPU.
taskset -cp <CPU ID | CPU IDs> <Process ID>
Following is an sample to demonstrate how you can do that.
1. Sample code which consumes 100% CPU (for demo purposes)
class Test { public static void main(String args[]) { int i = 0; while (true) { i++; } } }
2. Compile and run the above simple program
javac Test.java java Test
3. Use the 'htop' to view the CPU usage
In the above screen shot you can see that my sample process is running in the CPU 2. But its not guaranteed that it will always remain in CPU2. The OS might assign it to another CPU at some point.
4. Run the following command, it will assign the process 5982 permanently into 5th CPU (CPU # start at zero, hence the index 4 refers to 5th CPU.)
taskset -cp 4 5982
In the above screen shot you can see, that 100% CPU usage is now indicated in the CPU 5.
No comments:
Post a Comment