mysql — оптимизировать задачи процессора PHP. В большинстве случаев ядро ​​1 загружено на 100%, а ядро ​​2 меньше 10%.

У меня есть веб-сайт, который обеспечивает рассылку новостей для 7 каналов. У каждого пользователя есть свои фильтры новостной рассылки, поэтому мне нужно выполнить 7 запросов для каждого пользователя.

Также, когда загружается конкретный канал, каждый элемент из канала добавляется в таблицу user_history. Просто чтобы знать, что этот элемент был отправлен этому пользователю, и не отправляйте его снова.

Это еще 7 запросов.

Их еще 7, потому что я делаю запрос INSERT-SELECT. Я не перебираю каждый элемент и не делаю для него запрос.

После этого я генерирую сообщение электронной почты, которое также сохраняется в базе данных и отправляется пользователю.

Так что это как минимум 15 запросов на пользователя. Требуется ~ 25 минут, чтобы уведомить всех моих подписчиков.

В настоящее время у меня 2500 пользователей, но я должен зарегистрировать еще 6000 в ближайшее время. Я беспокоюсь о том, как это будет работать вообще.

Это приложение использует Kohana PHP Framework.

У меня есть htop видео сервера при запуске задачи рассылки — https://youtu.be/9VnkXVS51j4

Странно то, что ядро ​​1 загружено на 100%, а ядро ​​2 — нет.

Любые предложения здесь? Нужно ли больше ядер?

Я имею в виду какой-то механизм, который генерирует все сообщения электронной почты и сохраняет их в базе данных. Я хочу, чтобы генерация этого сообщения производилась при низкой нагрузке, возможно, в 2 часа ночи. Также я не хочу поджигать сервер, выполняя задачу, которая повышает нагрузку до 100%. Я хочу, чтобы это было сделано нежно.

После того, как все сообщения будут сгенерированы в течение ночи, я запусту задание cron, которое отправит все электронные письма моим подписчикам.

Кто-нибудь может мне помочь с этим?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]