Writing a CPU Consume Program to Test a Distributed System
Hi all -
I am working on a project testing out openMosix. For those that don't know what that is, it is a distributed OS patch that allows you to add nodes to your cluster and it will handle distributing processes. I want to write a program that will consume a certain portion of the cpu, or will perform a random bunch of i/o requests so that I can test out openMosix on my system. I have tried doing the typical things like compiling the kernel to see how openMosix works, but for the project I am tweaking with some of the distributed OS algorithms and seeing if I can improve them. Therefore, I need a program to throw a consistent load at the nodes to duplicate results and compare. Ideally, I want to have a config file that says I want to consume X% of the cpu, or something like that. My problem is that I don't know how to do this! I am not asking for anyone to write code, just to throw some ideas out there for how to go about starting something like this. Thanks in advance for all of your help! :) |
you could have some code that uses a way that limits the cpu usage to a certain limit in one instance of the process , using setrlimit and not setting any limit in another instance of the same code...
then if you have an SMP system, you might want to try the cpu-binding of processes... HTH |
Hm I may be completely wrong here, but I believe this is not how the Linux scheduler
works (may be different with Mosix and/or SMP kernel). You can't control how much CPU time a certain process will consume, all you can do is assign a certain priority (in relation to other processes' priority) to it. How much CPU time your process will effectively consume depends onits priority, total number of processes and their priority in relation to your process. |
i havent ever tried this stuff..but yes the man page for setrlimit does tend to suggest that you can tune these values to take a specified by the rlimit structure...if the process suns longer than the time specified as the limit, it receives the signal,SIGXCPU, tho the catch is : this time is in seconds...which I dont think should be that big an issue as the application desired should be doing something that takes a long time...if i got the question..
|
Thanks for the tips... I will look into the setrlimit stuff. Funny that testing the cpu loads would be the hard part, not the actual tweaking of the load algorithms. Hmmm...
Much appreciated! |
All times are GMT -5. The time now is 03:04 PM. |