У меня есть API (основанный на php и подключающийся к отдельному серверу базы данных mysql), который вызывается много раз, и вызывающее его программное обеспечение может долго ждать результата и не будет вызывать API. до того, как он получит результат текущего вызова, время ответа здесь также не имеет значения.
Сам API также не заботится о времени выполнения.
Итак, мой вопрос: когда загрузка сервера (сервер ubuntu 16.04, Apache, php5) достигает 100%, может ли API по-прежнему работать должным образом с только увеличенным временем обработки и задержкой?
Или будет какая-то ошибка накопление мусора в ОЗУ или что-то еще, что в конечном итоге приведет к остановке сервера, и мне нужно его перезапустить?
Это должно быть нормально, если вас не заботит удовлетворение запросов с увеличенной задержкой в это время. Тем не менее, вы должны быть более конкретными в отношении использования вашего ЦП.
Если вы посмотрите на вывод top
, вы увидите несколько полей для использования ЦП, в том числе пользователь, система, Хороший, Idle, IOwait, Hard IRQ, мягкое IRQ и Steal. Вы также сможете расширить свои ЦП, используя 1
, чтобы увидеть это использование для каждого ядра. Кажется, что это не имеет непосредственного отношения к вашей ситуации, но это скорее подсказка, когда вы спрашиваете об использовании.
Использование ЦП не влияет на сборку мусора или фрагментацию ОЗУ, а запуск сервера с высокой нагрузкой не должен привести к тому, что он станет нестабильным, если он настроен должным образом (значения по умолчанию здесь почти всегда в порядке - поэтому они по умолчанию).
Более рентабельно запускать сервер, близкий к максимальной, чем давать ему много ресурсов, с которыми можно ничего не делать, чтобы числа казались красивыми. Эта история начинает меняться, когда требуется очень низкая задержка, но не сильно меняется.