Приносим извинения за вопрос новичка, очень хотел бы получить совет по лучшей практике в отношении моей проблемы.
В моем ящике установлен ffmpeg, и я запускаю простой скрипт, который конвертирует .mp3 в .wav файл, используя shell_exec с php.
Это прекрасно работает, если недавно пользователь моей службы не злоупотреблял, написал макрос-скрипт, который запустил процесс преобразования почти 10 000 mp3, что уничтожило мой сервер, пока я не отключил его.
Теперь я полностью понимаю, что у меня должно быть что-то, чтобы предотвратить эту проблему, как лучше всего предотвратить такую ситуацию?
Я проверял EC2, и мне пришлось остановить и перезапустить его, процессор достиг пика более 90, все разбилось.
Имеет ли смысл иметь php-скрипт, чтобы установить флажок cpu для загрузки, и если он где-то больше 50%, просто не запускайте скрипт?
Я все еще учусь, был бы признателен за совет, чтобы я был уверен, что эта проблема больше не повторится.
Спасибо
Две вещи: 1) ограничение скорости вашего API для платных клиентов и использование бесплатного уровня. 2) Шаблон архитектуры AWS для этого будет заключаться в постановке сообщений в очередь и масштабировании рабочих в зависимости от размера очереди. У вас даже могут быть отдельные очереди для платных и бесплатных пользователей. Таким образом, рабочие сначала проверяют платные очереди / чаще, чем очереди бесплатных.
http://docs.aws.amazon.com/autoscaling/latest/userguide/as-using-sqs-queue.html