ActionCable медленно работает

Я создаю базовое приложение чата для поддержки клиентов на веб-сайте. При разработке на локальном сервере работает безупречно. Я отправил изменения на сервер, но он работает очень медленно. Само по себе приложение работает быстро, но публикация / подписка на доступные каналы выполняется медленно.

Я использую nginx, puma для веб-сервера и redis для pub / sub. У меня четыре канала, два из которых имеют тяжелую клиентскую часть (файл coffee.erb) .Как я могу сократить время на использование кабельных каналов? Как я могу отладить причину задержки?ActionCable медленно работает

ActionCable медленно работает

Заранее благодарю. Если требуется какой-либо код, укажите его в комментариях к вопросу, и я бы добавил его к вопросу.

Итак, вы проверили такие показатели сервера, как процессор, оперативная память, использование диска, время отклика и тому подобное, и пришли к выводу, что проблема в самом коде actioncable? Сколько у вас одновременных подключений? А сколько стоит extremely slow?

Martin Zinovsky 15.04.2018 14:11

У него 4 или 5 одновременных подключений (в зависимости от того, что я делаю). Каждое соединение отправляет менее 100 Кб данных через канал pub / sub.

Vaibhav Maheshwari 15.04.2018 14:13

@MartinZinovsky. Требуется 10 секунд, чтобы сработала подписка, которая затем связывается с каналом и отправляет уведомление в интерфейс администратора. 10 СЕКУНД!

Vaibhav Maheshwari 15.04.2018 15:02
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
1 015
1

Ответы 1

Самая распространенная причина того, что на сервере что-то работает медленнее, чем на локальном, заключается в том, что у них нет почти такого же объема оперативной памяти и начинается свопинг. Точно так же, как приложение до смешного работает медленно на старых телефонах.

В одном случае система меняет местами память и обратно, в другом случае приложение меняет и выгружает ресурсы само (часто неявно через кеши ресурсов, предоставляемые API).

Эффект тот же: огромные накладные расходы ввода-вывода, которых нет в вашей системе разработки / современном телефоне, что приводит к поведению во время выполнения, которое на несколько порядков медленнее.

Изначально я предположил то же самое и увеличил оперативную память, но не думаю, что это проблема. Я добавил скриншоты в свой вопрос, чтобы объяснить, как используются разные процессы.

Vaibhav Maheshwari 15.04.2018 14:11

Это виртуальный сервер? В этом случае использование более 25% обещанной памяти уже может быть проблемой, а это означает, что вместо того, чтобы загружать и выгружать память, ваша виртуальная машина продолжает тихо приостанавливаться ...

yeoman 18.04.2018 04:09

Это не виртуальный сервер. Это экземпляр Compute Engine (капля 40 долларов в месяц)

Vaibhav Maheshwari 19.04.2018 15:09

Другие вопросы по теме