Containers created but not started for a long time

I have an application that uses short-lived containers (for automated grading of student work - unit testing of very simple programs in Python and C++). Typically a job should last < 10 s. This is running on a linux server with 12C/24T CPU and 32GB memory. When the number of created containers is still relatively small (~20-30), it seems like containers are being created, but are slow to start - 30s or more - at least that seems to be what docker ps -a is reporting to me (output below). Only a handful of containers appear to be started at any time - much fewer than the number of CPUs. I’m wondering why - the server is definitely not running out of CPU, tons of memory free, iostat is not reporting excessive disk usage. The slow start means students are waiting too long to get their results.

Thank you for any insights, suggestions, etc.

OS: Ubuntu 20.04 Linux 5.4.0-81-generic #91-Ubuntu SMP Thu Jul 15 19:09:17 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Docker version: 20.10.17

Image is 206MB, based on python:3.8-slim

Output of docker ps -a:

CONTAINER ID   IMAGE          COMMAND     CREATED          STATUS                  PORTS     NAMES
927a3f7e9c50   d0a8b718a8a4   "/run.sh"   6 seconds ago    Created                           elastic_ptolemy
440ff35c0b19   d0a8b718a8a4   "/run.sh"   8 seconds ago    Created                           gracious_swartz
e40a7944c224   d0a8b718a8a4   "/run.sh"   9 seconds ago    Created                           compassionate_curie
948dff1e1551   d0a8b718a8a4   "/run.sh"   10 seconds ago   Created                           funny_antonelli
0eaa0a0b7f44   d0a8b718a8a4   "/run.sh"   12 seconds ago   Created                           gallant_margulis
a03730880023   d0a8b718a8a4   "/run.sh"   14 seconds ago   Created                           distracted_wilson
ec39006de4d4   d0a8b718a8a4   "/run.sh"   14 seconds ago   Created                           nice_meitner
0c2a5ca2ca8c   d0a8b718a8a4   "/run.sh"   14 seconds ago   Created                           goofy_dubinsky
d028cbb36aa9   d0a8b718a8a4   "/run.sh"   15 seconds ago   Created                           crazy_ellis
421f3c7c7cf2   d0a8b718a8a4   "/run.sh"   15 seconds ago   Created                           zealous_kilby
ced484139e6d   630e9680e389   "/run.sh"   16 seconds ago   Created                           practical_wescoff
1b4f6a4c7119   d0a8b718a8a4   "/run.sh"   18 seconds ago   Created                           distracted_almeida
25506f710f55   d0a8b718a8a4   "/run.sh"   18 seconds ago   Created                           suspicious_jones
506ada18b569   d0a8b718a8a4   "/run.sh"   22 seconds ago   Created                           nice_cray
2749d57a1333   d0a8b718a8a4   "/run.sh"   23 seconds ago   Created                           charming_kare
286107e099b4   d0a8b718a8a4   "/run.sh"   25 seconds ago   Created                           vigorous_blackwell
c943746e33e1   d0a8b718a8a4   "/run.sh"   27 seconds ago   Created                           wizardly_almeida
42851177e0d8   d0a8b718a8a4   "/run.sh"   30 seconds ago   Created                           stoic_hamilton
17ff4cc1915f   d0a8b718a8a4   "/run.sh"   40 seconds ago   Created                           epic_bardeen
a5ff4b1a9925   d0a8b718a8a4   "/run.sh"   43 seconds ago   Up 11 seconds                     admiring_ramanujan
8743a5585f66   d0a8b718a8a4   "/run.sh"   47 seconds ago   Up 13 seconds                     funny_dijkstra
0f8e8abd4a9f   d0a8b718a8a4   "/run.sh"   50 seconds ago   Up Less than a second             sharp_ishizaka
43aec90c52d8   d0a8b718a8a4   "/run.sh"   50 seconds ago   Up 4 seconds                      loving_mendeleev
b6d7c575bdc1   d0a8b718a8a4   "/run.sh"   50 seconds ago   Up 2 seconds                      elegant_herschel
36e2d099aca3   d0a8b718a8a4   "/run.sh"   55 seconds ago   Up 4 seconds                      mystifying_cohen
30167fa7a960   d0a8b718a8a4   "/run.sh"   55 seconds ago   Up 9 seconds                      awesome_chaplygin
6dae9414f4bf   d0a8b718a8a4   "/run.sh"   55 seconds ago   Up 9 seconds                      boring_mendel
60cb3992d828   d0a8b718a8a4   "/run.sh"   56 seconds ago   Up 9 seconds                      crazy_kare

Docker container inspect of one container:

[
    {
        "Id": "927a3f7e9c502b2bdd7cc3d3a0696a707ca08e306fd3c390f020f79786830dc5",
        "Created": "2021-08-26T16:45:39.13730698Z",
        "Path": "/run.sh",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 1055078,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2021-08-26T16:46:19.614199339Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:d0a8b718a8a42104952cbfc22e2a3d41f9023edc052aab7dca2d19e5a10b742b",
        "ResolvConfPath": "",
        "HostnamePath": "/var/lib/docker/containers/927a3f7e9c502b2bdd7cc3d3a0696a707ca08e306fd3c390f020f79786830dc5/hostname",
        "HostsPath": "",
        "LogPath": "/var/lib/docker/containers/927a3f7e9c502b2bdd7cc3d3a0696a707ca08e306fd3c390f020f79786830dc5/927a3f7e9c502b2bdd7cc3d3a0696a707ca08e306fd3c390f020f79786830dc5-json.log",
        "Name": "/elastic_ptolemy",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "docker-default",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": [
                "/home/autograder/autograder/working/autograder20210826-946195-12lxins-10_45_39:/tests/"
            ],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": null,
            "RestartPolicy": {
                "Name": "",
                "MaximumRetryCount": 0
            },
            "AutoRemove": true,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "host",
            "Dns": null,
            "DnsOptions": null,
            "DnsSearch": null,
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": null,
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": null,
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/4dc81d4b18cfe5a4dc706a2c451ecf4733fe0d4845ec927e193d16b5d0782e52-init/diff:/var/lib/docker/overlay2/d10954fa0ef91936e6b769c6dcbe760ad0a5f2512812de3bd77d6cf66a6874e1/diff:/var/lib/docker/overlay2/7161fe677e6d769cddfd6ac0e240aa99ba6d1aabcc476b6d04750b360685ac0c/diff:/var/lib/docker/overlay2/f7a952ac97e464ab70cec81b08c1185f4790b44faad810d98e49fdee7c4c7db1/diff:/var/lib/docker/overlay2/df8dba83b475e85536ccb9500948ddf1fd2041780239a02cb55d16a8f860d3e0/diff:/var/lib/docker/overlay2/e827e77ea4843b3371ca86748b932041ead0a6d04afec3a992c30b0b9e0ecbac/diff:/var/lib/docker/overlay2/456c8386e123787d9779e467a52e2b1b591175fd507e0379c4e0f29321d43315/diff:/var/lib/docker/overlay2/92a87522a73b6ddec507e58a87170c89687fb066ee3148dc125b6e9f4e9090cf/diff:/var/lib/docker/overlay2/3569f62c1d947960af20590b1c6963001ef4ef5abf04644a4a51012f024333bc/diff",
                "MergedDir": "/var/lib/docker/overlay2/4dc81d4b18cfe5a4dc706a2c451ecf4733fe0d4845ec927e193d16b5d0782e52/merged",
                "UpperDir": "/var/lib/docker/overlay2/4dc81d4b18cfe5a4dc706a2c451ecf4733fe0d4845ec927e193d16b5d0782e52/diff",
                "WorkDir": "/var/lib/docker/overlay2/4dc81d4b18cfe5a4dc706a2c451ecf4733fe0d4845ec927e193d16b5d0782e52/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/home/autograder/autograder/working/autograder20210826-946195-12lxins-10_45_39",
                "Destination": "/tests",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
        "Config": {
            "Hostname": "927a3f7e9c50",
            "Domainname": "",
            "User": "1001",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "test_num=5",
                "timeout=1.0",
                "PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "LANG=C.UTF-8",
                "GPG_KEY=E3FF2839C048B25C084DEBE9B26995E310250568",
                "PYTHON_VERSION=3.8.11",
                "PYTHON_PIP_VERSION=21.2.4",
                "PYTHON_GET_PIP_URL=https://github.com/pypa/get-pip/raw/c20b0cfd643cd4a19246ccf204e2997af70f6b21/public/get-pip.py",
                "PYTHON_GET_PIP_SHA256=fa6f3fb93cce234cd4e8dd2beb54a51ab9c247653b52855a48dd44e6b21ff28b"
            ],
            "Cmd": [
                "/run.sh"
            ],
            "Image": "d0a8b718a8a4",
            "Volumes": null,
            "WorkingDir": "/tests",
            "Entrypoint": null,
            "NetworkDisabled": true,
            "OnBuild": null,
            "Labels": {}
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {}
        }
    }
]