Я делаю приложение для чата, например, Facebook, используя PHP, MySql и Node.js (socket.io для чата в реальном времени). Проблема в том, что загрузка моего сервера увеличивается до 10-15, когда 20 человек начинают общаться в чате. Я просто вставляю сообщение на стороне отправителя и отправляю идентификатор сообщения получателю, а получатель получает информацию о сообщении из БД. У меня есть сервер Centos, имеющий 4 физических и 4 логических ядра (всего 8 ядер) и 16 ГБ ОЗУ. Мой сайт встроен в zencart, и есть еще одна проблема, когда я нажимаю f5 в течение 1 минуты на статической странице, загрузка сервера увеличивается до 10. Может кто-нибудь сказать мне, в чем проблема?
Попробуйте записать, что происходит в базе данных, с помощью общего журнала запросов:
http://dev.mysql.com/doc/refman/5.7/en/query-log.html
Если у вас загруженный сайт с большим количеством пользователей, вы можете попробовать другие решения для вашей системы сообщений. Redis, например, имеет паб / подсистему, которую вы можете использовать для отправки сообщений нескольким слушателям.
Других решений пока нет …