ULE scheduler in 7.X and 8.X (maybe in 6 too) has one scenario where it performs really bad. I remember that oldest release of ULE worked in this scenario well (better than 4bsd) but all following ULE versions are really bad in this.
How to reproduce:
You will notice huge performance drop due to background dnetc client. Compile (especially ./configure stuff) runs really slow. It should run on the same speed as without dnetc because intelligent scheduler will steal CPU time from dnetc in favor of compiling. Dnetc is running at nice level 20 after all.
ULE scheduler can be tuned via sysctl a bit but i was not able to do any significant improvement
How to reproduce:
- run some CPU eating task on lowest priority (best for testing is distributed.net client, because it is included in ports)
- then compile something which is using autoconf ./configure script
You will notice huge performance drop due to background dnetc client. Compile (especially ./configure stuff) runs really slow. It should run on the same speed as without dnetc because intelligent scheduler will steal CPU time from dnetc in favor of compiling. Dnetc is running at nice level 20 after all.
ULE scheduler can be tuned via sysctl a bit but i was not able to do any significant improvement