Load testing & monitoring uWSGI workers after scaling (32GB RAM / 64 Cores)?

Hi all,

I am running Tutor on a server with 64 CPU cores and 32GB RAM, and I’m increasing OPENEDX_LMS_UWSGI_WORKERS from 2 to 24.

  1. What is the best way to benchmark max concurrency and response times before/after?

  2. How can I monitor active uWSGI workers in real-time to confirm all 24 are being utilized?

Thanks

You can inspect worker usage with something like uwsgitop · PyPI .

Add the corresponding settings the uwsgi configuration:

from tutor import hooks
UWSGI_CONFIG = """
stats-http = true
stats = :1717
"""
hooks.Filters.ENV_PATCHES.add_items([("uwsgi-config", UWSGI_CONFIG)])

And then you can expose the stats port in the host

cat > "$(tutor config printroot)/env/local/docker-compose.override.yml" <<EOF
> services:
  lms:
    ports:
      - 127.0.0.1:1717:1717
EOF

The on your host you can run uwsgitop http://127.0.0.1:1717.

It works! Thank you.

How do I test for the maximum concurrent users the system can support before it breaks?