Я создаю базовое приложение чата для поддержки клиентов на веб-сайте. При разработке на локальном сервере работает безупречно. Я отправил изменения на сервер, но он работает очень медленно. Само по себе приложение работает быстро, но публикация / подписка на доступные каналы выполняется медленно.
Я использую nginx, puma для веб-сервера и redis для pub / sub. У меня четыре канала, два из которых имеют тяжелую клиентскую часть (файл coffee.erb) .Как я могу сократить время на использование кабельных каналов? Как я могу отладить причину задержки?
Заранее благодарю. Если требуется какой-либо код, укажите его в комментариях к вопросу, и я бы добавил его к вопросу.
У него 4 или 5 одновременных подключений (в зависимости от того, что я делаю). Каждое соединение отправляет менее 100 Кб данных через канал pub / sub.
@MartinZinovsky. Требуется 10 секунд, чтобы сработала подписка, которая затем связывается с каналом и отправляет уведомление в интерфейс администратора. 10 СЕКУНД!





Самая распространенная причина того, что на сервере что-то работает медленнее, чем на локальном, заключается в том, что у них нет почти такого же объема оперативной памяти и начинается свопинг. Точно так же, как приложение до смешного работает медленно на старых телефонах.
В одном случае система меняет местами память и обратно, в другом случае приложение меняет и выгружает ресурсы само (часто неявно через кеши ресурсов, предоставляемые API).
Эффект тот же: огромные накладные расходы ввода-вывода, которых нет в вашей системе разработки / современном телефоне, что приводит к поведению во время выполнения, которое на несколько порядков медленнее.
Изначально я предположил то же самое и увеличил оперативную память, но не думаю, что это проблема. Я добавил скриншоты в свой вопрос, чтобы объяснить, как используются разные процессы.
Это виртуальный сервер? В этом случае использование более 25% обещанной памяти уже может быть проблемой, а это означает, что вместо того, чтобы загружать и выгружать память, ваша виртуальная машина продолжает тихо приостанавливаться ...
Это не виртуальный сервер. Это экземпляр Compute Engine (капля 40 долларов в месяц)
Итак, вы проверили такие показатели сервера, как процессор, оперативная память, использование диска, время отклика и тому подобное, и пришли к выводу, что проблема в самом коде
actioncable? Сколько у вас одновременных подключений? А сколько стоитextremely slow?