Ich möchte einen Cron-Job ausführen, der aufräumt und viele CPU- und MySQL-Ressourcen benötigt. Ich möchte es nur ausführen, wenn der Server nicht relativ beschäftigt ist.
Was ist der einfachste Weg, um das von PHP zu bestimmen? (Gibt es beispielsweise eine Abfrage, die zurückgibt, wie viele Abfragen in der letzten Minute ausgeführt wurden? ...)
Wenn dies ein Unix-System ist, parsen Sie die Ausgabe von uptime
. Dies zeigt die CPU-Last, die allgemein als ein gutes Maß für "beschäftigt" angesehen wird. Alles in der Nähe oder über 1.0
bedeutet "komplett beschäftigt".
Es gibt drei CPU-Ladezeiten in diesem Ausgang, die den Lastdurchschnitt über 1, 5 und 15 Minuten angeben. Wählen Sie, was für Ihr Skript sinnvoll ist. Definition von "load" ist hier .
Sie können die Informationen wahrscheinlich in der Mysql List Prozesse Funktion verwenden sehen Sie, wie viele aktiv sind gegen schlafen, ein anständiger Indikator über die Belastung der DB.
Wenn Sie Linux verwenden, können Sie die Sys GetLoadAvg Funktion verwenden, um die Gesamtsystembelastung zu sehen.