Ich weiß natürlich nicht, was du in deinem Skript machst, aber wenn der Flaschenhals etwa die Kommunikation mit dem Datenbanksystem ist, dann wird das die Anfragen von 30 Skripts auch nicht schneller abarbeiten können als die von einem. Caching und so mal außen vor, die Anfragen dürften halt einfach serialisiert abgearbeitet werden.
Wenn du glaubst, dass das Skript nicht die Rechenpower verwendet, die es verwenden könnte, würde ich erst mal dort ansetzen und vielleicht die Priorität des Prozesses auf OS-Ebene erhöhen.
-
https://en.wikipedia.org/wiki/Nice_(Unix)
Ich bin aber nicht sicher, ob das für dich der richtige Ansatz ist. Da fehlt einfach der Gesamtüberblick.
Wenn du auf einem Dual-Core-System durch Parallelisierung von Prozessen irgendwas um Faktor 20 an Geschwindigkeit rausholst, ist das für mich zumindest ein starker Indikator, dass das ursprüngliche Skript sehr ungünstig – ich sage mal – konfiguriert war.
PS: Es würde mich ehrlich gesagt überhaupt nicht wundern, wenn die Geschichte durch die Umprogrammierung unterm Strich sogar langsamer würde. (Von „bewussten“ Fehlkonfigurationen natürlich abgesehen. Jetzt nur auf den Code bezogen.) Es kommt eben einiger Overhead hinzu, es sind vermutlich mehr DB-Anfragen, es müssen Aufgaben synchronisiert werden, …