Optimal number of Start-JobThread simultaneously

How do I calculate the optimal number of Powershell ThreadJobs? I have a script that hands out jobs to multiple servers but these servers do not have the same number of CPU cores and RAM always.
Is there some equation for dynamically calculating this optimal number to set as the ThrottleLimit?
The tasks are not very RAM or CPU intensive but it seems like powershell is always drastically slowing down when reaching above a thousand or so jobs.