fix(profiling): require --skip-atexit for uWSGI<2.0.30, --lazy or --lazy-apps#14526
Conversation
|
|
…race-py into taegyunkim/prof-12434-uwsgi
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 273 ± 3 ms. The average import time from base is: 278 ± 3 ms. The import time difference between this PR and base is: -4.5 ± 0.1 ms. Import time breakdownThe following import paths have grown:
|
Performance SLOsComparing candidate taegyunkim/prof-12434-uwsgi (9d300f6) with baseline main (7042e95) 📈 Performance Regressions (1 suite)📈 iastaspectsospath - 24/24✅ ospathbasename_aspectTime: ✅ 4.349µs (SLO: <10.000µs 📉 -56.5%) vs baseline: -1.5% Memory: ✅ 37.454MB (SLO: <39.000MB -4.0%) vs baseline: +5.4% ✅ ospathbasename_noaspectTime: ✅ 1.085µs (SLO: <10.000µs 📉 -89.2%) vs baseline: -1.0% Memory: ✅ 37.454MB (SLO: <39.000MB -4.0%) vs baseline: +5.4% ✅ ospathjoin_aspectTime: ✅ 7.050µs (SLO: <10.000µs 📉 -29.5%) vs baseline: 📈 +11.3% Memory: ✅ 37.473MB (SLO: <39.000MB -3.9%) vs baseline: +5.3% ✅ ospathjoin_noaspectTime: ✅ 2.281µs (SLO: <10.000µs 📉 -77.2%) vs baseline: -0.2% Memory: ✅ 37.532MB (SLO: <39.000MB -3.8%) vs baseline: +5.6% ✅ ospathnormcase_aspectTime: ✅ 3.521µs (SLO: <10.000µs 📉 -64.8%) vs baseline: -5.4% Memory: ✅ 37.415MB (SLO: <39.000MB -4.1%) vs baseline: +5.2% ✅ ospathnormcase_noaspectTime: ✅ 0.571µs (SLO: <10.000µs 📉 -94.3%) vs baseline: ~same Memory: ✅ 37.473MB (SLO: <39.000MB -3.9%) vs baseline: +5.3% ✅ ospathsplit_aspectTime: ✅ 4.854µs (SLO: <10.000µs 📉 -51.5%) vs baseline: -2.3% Memory: ✅ 37.454MB (SLO: <39.000MB -4.0%) vs baseline: +5.2% ✅ ospathsplit_noaspectTime: ✅ 1.598µs (SLO: <10.000µs 📉 -84.0%) vs baseline: +0.4% Memory: ✅ 37.513MB (SLO: <39.000MB -3.8%) vs baseline: +5.5% ✅ ospathsplitdrive_aspectTime: ✅ 3.743µs (SLO: <10.000µs 📉 -62.6%) vs baseline: -3.4% Memory: ✅ 37.415MB (SLO: <39.000MB -4.1%) vs baseline: +5.1% ✅ ospathsplitdrive_noaspectTime: ✅ 0.697µs (SLO: <10.000µs 📉 -93.0%) vs baseline: -0.5% Memory: ✅ 37.473MB (SLO: <39.000MB -3.9%) vs baseline: +5.6% ✅ ospathsplitext_aspectTime: ✅ 4.549µs (SLO: <10.000µs 📉 -54.5%) vs baseline: -2.3% Memory: ✅ 37.415MB (SLO: <39.000MB -4.1%) vs baseline: +5.1% ✅ ospathsplitext_noaspectTime: ✅ 1.371µs (SLO: <10.000µs 📉 -86.3%) vs baseline: -2.1% Memory: ✅ 37.473MB (SLO: <39.000MB -3.9%) vs baseline: +5.4% 🟡 Near SLO Breach (6 suites)🟡 djangosimple - 26/26✅ appsecTime: ✅ 20.522ms (SLO: <22.300ms -8.0%) vs baseline: +0.2% Memory: ✅ 64.546MB (SLO: <66.000MB -2.2%) vs baseline: +5.0% ✅ exception-replay-enabledTime: ✅ 1.347ms (SLO: <1.450ms -7.1%) vs baseline: +0.6% Memory: ✅ 63.541MB (SLO: <66.000MB -3.7%) vs baseline: +5.0% ✅ iastTime: ✅ 20.524ms (SLO: <22.250ms -7.8%) vs baseline: +0.4% Memory: ✅ 64.546MB (SLO: <66.000MB -2.2%) vs baseline: +5.0% ✅ profilerTime: ✅ 15.189ms (SLO: <16.550ms -8.2%) vs baseline: -0.6% Memory: ✅ 52.966MB (SLO: <53.500MB 🟡 -1.0%) vs baseline: +5.0% ✅ span-code-originTime: ✅ 26.168ms (SLO: <28.200ms -7.2%) vs baseline: ~same Memory: ✅ 66.733MB (SLO: <68.500MB -2.6%) vs baseline: +5.0% ✅ tracerTime: ✅ 20.459ms (SLO: <21.750ms -5.9%) vs baseline: -0.1% Memory: ✅ 64.546MB (SLO: <66.000MB -2.2%) vs baseline: +5.1% ✅ tracer-and-profilerTime: ✅ 22.097ms (SLO: <23.500ms -6.0%) vs baseline: ~same Memory: ✅ 65.958MB (SLO: <67.000MB 🟡 -1.6%) vs baseline: +5.3% ✅ tracer-dont-create-db-spansTime: ✅ 19.374ms (SLO: <21.500ms -9.9%) vs baseline: +0.6% Memory: ✅ 64.527MB (SLO: <66.000MB -2.2%) vs baseline: +5.0% ✅ tracer-nativeTime: ✅ 20.452ms (SLO: <21.750ms -6.0%) vs baseline: -0.2% Memory: ✅ 65.785MB (SLO: <66.000MB 🟡 -0.3%) vs baseline: +5.0% ✅ tracer-no-cachesTime: ✅ 18.427ms (SLO: <19.650ms -6.2%) vs baseline: ~same Memory: ✅ 64.468MB (SLO: <66.000MB -2.3%) vs baseline: +5.0% ✅ tracer-no-databasesTime: ✅ 18.780ms (SLO: <20.100ms -6.6%) vs baseline: ~same Memory: ✅ 64.468MB (SLO: <66.000MB -2.3%) vs baseline: +4.9% ✅ tracer-no-middlewareTime: ✅ 20.217ms (SLO: <21.500ms -6.0%) vs baseline: +0.2% Memory: ✅ 64.487MB (SLO: <66.000MB -2.3%) vs baseline: +4.9% ✅ tracer-no-templatesTime: ✅ 20.351ms (SLO: <22.000ms -7.5%) vs baseline: -0.2% Memory: ✅ 64.507MB (SLO: <66.000MB -2.3%) vs baseline: +5.0% 🟡 errortrackingdjangosimple - 6/6✅ errortracking-enabled-allTime: ✅ 18.029ms (SLO: <19.850ms -9.2%) vs baseline: +0.2% Memory: ✅ 64.487MB (SLO: <65.500MB 🟡 -1.5%) vs baseline: +5.0% ✅ errortracking-enabled-userTime: ✅ 18.052ms (SLO: <19.400ms -6.9%) vs baseline: ~same Memory: ✅ 64.407MB (SLO: <65.500MB 🟡 -1.7%) vs baseline: +4.8% ✅ tracer-enabledTime: ✅ 18.196ms (SLO: <19.450ms -6.4%) vs baseline: +0.7% Memory: ✅ 64.423MB (SLO: <65.500MB 🟡 -1.6%) vs baseline: +4.8% 🟡 flasksimple - 17/17✅ appsec-getTime: ✅ 4.579ms (SLO: <4.750ms -3.6%) vs baseline: -0.2% Memory: ✅ 62.403MB (SLO: <64.500MB -3.3%) vs baseline: +5.1% ✅ appsec-postTime: ✅ 6.583ms (SLO: <6.750ms -2.5%) vs baseline: ~same Memory: ✅ 62.403MB (SLO: <64.500MB -3.3%) vs baseline: +5.1% ✅ appsec-telemetryTime: ✅ 4.577ms (SLO: <4.750ms -3.6%) vs baseline: ~same Memory: ✅ 62.325MB (SLO: <64.500MB -3.4%) vs baseline: +5.0% ✅ debuggerTime: ✅ 1.855ms (SLO: <2.000ms -7.3%) vs baseline: +0.1% Memory: ✅ 44.768MB (SLO: <45.000MB 🟡 -0.5%) vs baseline: +5.0% ✅ iast-getTime: ✅ 1.855ms (SLO: <2.000ms -7.2%) vs baseline: -0.1% Memory: ✅ 41.819MB (SLO: <49.000MB 📉 -14.7%) vs baseline: +5.5% ✅ profilerTime: ✅ 1.914ms (SLO: <2.100ms -8.9%) vs baseline: ~same Memory: ✅ 44.394MB (SLO: <46.500MB -4.5%) vs baseline: +4.9% ✅ tracerTime: ✅ 3.374ms (SLO: <3.650ms -7.6%) vs baseline: ~same Memory: ✅ 51.413MB (SLO: <53.500MB -3.9%) vs baseline: +5.0% ✅ tracer-nativeTime: ✅ 3.365ms (SLO: <3.650ms -7.8%) vs baseline: ~same Memory: ✅ 52.730MB (SLO: <53.500MB 🟡 -1.4%) vs baseline: +5.0% 🟡 flasksqli - 6/6✅ appsec-enabledTime: ✅ 3.948ms (SLO: <4.200ms -6.0%) vs baseline: -0.4% Memory: ✅ 62.537MB (SLO: <66.000MB -5.2%) vs baseline: +4.8% ✅ iast-enabledTime: ✅ 2.447ms (SLO: <2.800ms 📉 -12.6%) vs baseline: -0.5% Memory: ✅ 58.072MB (SLO: <59.000MB 🟡 -1.6%) vs baseline: +4.9% ✅ tracer-enabledTime: ✅ 2.082ms (SLO: <2.250ms -7.5%) vs baseline: -0.1% Memory: ✅ 51.169MB (SLO: <53.500MB -4.4%) vs baseline: +4.8% 🟡 iastpropagation - 8/8✅ no-propagationTime: ✅ 48.840µs (SLO: <60.000µs 📉 -18.6%) vs baseline: ~same Memory: ✅ 37.061MB (SLO: <39.000MB -5.0%) vs baseline: +5.2% ✅ propagation_enabledTime: ✅ 175.918µs (SLO: <190.000µs -7.4%) vs baseline: +6.5% Memory: ✅ 37.021MB (SLO: <39.000MB -5.1%) vs baseline: +5.2% ✅ propagation_enabled_100Time: ✅ 1.870ms (SLO: <1.900ms 🟡 -1.6%) vs baseline: +1.1% Memory: ✅ 37.021MB (SLO: <39.000MB -5.1%) vs baseline: +5.1% ✅ propagation_enabled_1000Time: ✅ 32.179ms (SLO: <35.550ms -9.5%) vs baseline: +0.9% Memory: ✅ 37.021MB (SLO: <39.000MB -5.1%) vs baseline: +5.2% 🟡 otelspan - 22/22✅ add-eventTime: ✅ 45.283ms (SLO: <47.150ms -4.0%) vs baseline: -0.3% Memory: ✅ 44.669MB (SLO: <46.500MB -3.9%) vs baseline: +5.4% ✅ add-metricsTime: ✅ 322.962ms (SLO: <344.800ms -6.3%) vs baseline: ~same Memory: ✅ 553.759MB (SLO: <562.000MB 🟡 -1.5%) vs baseline: +4.9% ✅ add-tagsTime: ✅ 292.135ms (SLO: <314.000ms -7.0%) vs baseline: +1.2% Memory: ✅ 554.250MB (SLO: <563.500MB 🟡 -1.6%) vs baseline: +4.7% ✅ get-contextTime: ✅ 82.377ms (SLO: <92.350ms 📉 -10.8%) vs baseline: -0.3% Memory: ✅ 39.767MB (SLO: <46.500MB 📉 -14.5%) vs baseline: +5.2% ✅ is-recordingTime: ✅ 42.868ms (SLO: <44.500ms -3.7%) vs baseline: -0.1% Memory: ✅ 44.062MB (SLO: <46.500MB -5.2%) vs baseline: +5.1% ✅ record-exceptionTime: ✅ 61.409ms (SLO: <67.650ms -9.2%) vs baseline: -0.3% Memory: ✅ 40.172MB (SLO: <46.500MB 📉 -13.6%) vs baseline: +5.5% ✅ set-statusTime: ✅ 48.819ms (SLO: <50.400ms -3.1%) vs baseline: ~same Memory: ✅ 43.938MB (SLO: <46.500MB -5.5%) vs baseline: +5.0% ✅ startTime: ✅ 42.191ms (SLO: <43.450ms -2.9%) vs baseline: -0.2% Memory: ✅ 44.110MB (SLO: <46.500MB -5.1%) vs baseline: +5.3% ✅ start-finishTime: ✅ 83.520ms (SLO: <88.000ms -5.1%) vs baseline: +0.4% Memory: ✅ 33.974MB (SLO: <46.500MB 📉 -26.9%) vs baseline: +5.3% ✅ start-finish-telemetryTime: ✅ 84.872ms (SLO: <89.000ms -4.6%) vs baseline: +0.1% Memory: ✅ 34.053MB (SLO: <46.500MB 📉 -26.8%) vs baseline: +5.7% ✅ update-nameTime: ✅ 44.232ms (SLO: <45.150ms -2.0%) vs baseline: ~same Memory: ✅ 44.441MB (SLO: <46.500MB -4.4%) vs baseline: +5.4%
|
--skip-atexit for uWSGI<2.0.30, --lazy or --lazy-apps--skip-atexit for uWSGI<2.0.30, --lazy or --lazy-apps
With this change, profiling won't start if they don't have
--skip-atexitwhen either--lazyor--lazy-appsis set onuWSGI<2.0.30.This is a follow up to #13550
See details unbit/uwsgi#2726
We plan to change this behavior to throw
uWSGIConfigErrorfrom 4.x releases.Checklist
Reviewer Checklist