Analyse der CPU-Zeit in Hintergrundjobs (Sidekiq)

Sie können die Sidekiq-Protokollierung aktivieren, um Messungen darüber zu sammeln, wie viel Zeit für jeden Job aufgewendet wird, über ENV[\"DISCOURSE_LOG_SIDEKIQ\"].\n\n\u003cdetails\u003e\nEine Möglichkeit, dies zu aktivieren, ohne den Container neu zu erstellen, besteht darin, /src/config/environments/production.rb zu bearbeiten und diesen Code irgendwo früh hinzuzufügen:\n\nruby\nENV[\"DISCOURSE_LOG_SIDEKIQ\"] = \"1\"\n\n\nStarten Sie dann den Container neu.\n\u003c/details\u003e\n\nDie Job-Maschinerie schreibt Messungen in log/sidekiq.log als Zeilen von JSON, die einfach über jq zusammengefasst werden können.\n\nUm die gesamte und durchschnittliche Zeit für Jobs zu erhalten, die mehr als 5 % der Gesamtzeit in Anspruch nehmen:\n\nbash\nsudo apt update \u0026\u0026 apt install jq -y\n\njq -s '\n group_by(.job_name)\n | map({\n job_name: .[0].job_name,\n count: length,\n total_duration: (map(.duration) | add),\n average_duration: (map(.duration) | add / length)\n })\n | (map(.total_duration) | add) as $grand_total\n | map(. + { percentage: (.total_duration / $grand_total * 100) })\n | map(select(.percentage \u003e 5))\n | sort_by(.total_duration)\n' log/sidekiq.log\n

3 „Gefällt mir“