Я использую два сервера в облаке Rackspace: один для веб-приложения и один для экземпляров db и redis. Веб-сервер имеет 1 ГБ оперативной памяти и одно ядро. Nginx сидит перед единорогом, у которого работают 2 рабочих. У меня также запущен экземпляр sidekiq. Эта конфигурация отлично работает, и серверы обычно гудят на очень низком уровне ЦП, поскольку приложение еще не запущено.
Однако, когда я выполняю перезапуск единорога, не говоря уже о полном развертывании приложения, начинается весь ад. Это выглядит примерно так:
В основном мой сервер уничтожается за 3 минуты. Время от времени он несколько отзывчив, но мониторинг запускает предупреждения о простоях повсюду (это просто перезапуск с нулевым временем простоя).
Если я выполняю полное развертывание, график будет длиться около 8 минут, даже если я предварительно компилирую ресурсы и загружаю их, поэтому компиляции на сервере не будет.
Для меня интересно то, что у меня есть точная копия сервера, работающего на DigitalOcean. Я могу полностью перезапустить весь сервер shutdown -r
и будьте готовы обслуживать страницы за 50 секунд. С этим сервером Rackspace я не осмеливаюсь перезапустить его даже для тестирования, так как это приведет к очень значительному простою рабочего сервера.
Я не администратор серверов Linux, поэтому мне интересно, могут ли люди сказать мне, подходит ли это для курса с облачными серверами Rackspace. У меня был десятилетний опыт работы с несколькими специализированными компьютерами с Windows, и у меня никогда не было подобных проблем.
hdparm против серверов.
Место для стойки:
$ sudo hdparm -Tt /dev/xvdc
/dev/xvdc:
Timing cached reads: 5066 MB in 1.99 seconds = 2541.54 MB/sec
Timing buffered disk reads: 238 MB in 3.00 seconds = 79.32 MB/sec
DigitalOcean
$ sudo hdparm -Tt /dev/vda
/dev/vda:
Timing cached reads: 15612 MB in 1.99 seconds = 7828.02 MB/sec
Timing buffered disk reads: 1416 MB in 3.00 seconds = 471.89 MB/sec
Очевидно, что сервер DO значительно опережает сервер RS. Интересно, что сервер DO фактически размещает два приложения, поэтому выполняет больше работы, чем одно RS. Оба hdparms работают с примерно одинаковой нагрузкой на сервер (т.е. очень небольшой). Это чисто низкая скорость диска или здесь что-то еще происходит?
верх для обоих серверов
Rackspace
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
9832 xxxxxxxx 20 0 525m 214m 4372 S 0.0 21.6 1:31.61 ruby
9829 xxxxxxxx 20 0 443m 205m 3312 S 0.0 20.6 1:27.67 ruby
15597 xxxxxxxx 20 0 554m 176m 1268 S 0.0 17.8 4:59.36 ruby
9780 xxxxxxxx 20 0 443m 63m 1088 S 0.0 6.4 0:28.80 ruby
787 root 20 0 193m 17m 2608 S 2.0 1.7 350:43.06 driveclient
1556 xxxxxxxx 20 0 77876 11m 1020 S 0.0 1.1 18:54.78 remote_syslog
17415 root 20 0 73096 3364 2608 S 0.0 0.3 0:00.03 sshd
Цифровой океан
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
20921 xxxxxxxx 20 0 240m 191m 5328 S 0.0 19.1 0:29.62 ruby
21009 xxxxxxxx 20 0 204m 178m 5356 S 0.0 17.8 0:20.82 ruby
21194 xxxxxxxx 20 0 204m 174m 1724 S 0.0 17.4 0:00.10 ruby
21206 xxxxxxxx 20 0 204m 174m 1656 S 0.0 17.4 0:00.10 ruby
21181 xxxxxxxx 20 0 98.3m 89m 2184 S 0.3 8.9 0:03.04 ruby
1426 xxxxxxxx 20 0 117m 40m 2272 S 0.0 4.1 1:09.02 ruby
1429 xxxxxxxx 20 0 117m 29m 2180 S 0.0 3.0 1:09.64 ruby
1422 xxxxxxxx 20 0 117m 4652 1172 S 0.0 0.5 0:08.08 ruby
22066 xxxxxxxx 20 0 7188 3456 1512 S 0.0 0.3 0:00.09 bash
22008 root 20 0 10008 3320 2664 S 0.0 0.3 0:00.03 sshd
Должен ли я отказаться от Rackspace?
Изменить: развернуть график (исключая загрузку файла и распаковку предварительно скомпилированных активов)
Изменить: vmstat
$ vmstat -S M 1 10
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 380 67 13 109 4 4 13 10 10 17 1 1 97 0
0 0 380 67 13 109 0 0 0 0 650 1011 0 1 99 0
0 0 380 67 13 109 0 0 0 0 675 1008 0 1 99 0
0 0 380 67 13 109 0 0 0 0 659 1009 0 0 100 0
1 0 380 67 13 109 0 0 0 68 661 1027 0 0 99 1
0 0 380 67 13 109 0 0 0 0 667 1014 0 0 100 0
1 0 380 67 13 109 0 0 0 0 671 1016 1 0 99 0
0 0 380 67 13 109 0 0 0 0 668 1008 0 0 99 0
0 0 380 67 13 109 0 0 0 0 671 1022 0 0 100 0
0 0 380 67 13 109 0 0 0 0 783 1112 9 3 89 0
Я работаю в Rackspace, и мы хотели бы помочь вам решить эту проблему. Если вы можете позвонить нам по телефону 1-800-961-4454, мы сможем проверить работоспособность хоста, на котором находится ваш сервер, и переместить его на новый, если это действительно проблема с шумным соседом. Мне также было бы интересно увидеть вывод «vmstat -S M 1 10», «sar -b» (по прошествии некоторого времени) и, возможно, «iostat -x / dev / xvdc 2 6», когда возникает эта проблема.
Спасибо!
-Джимми
Это определенно похоже на узкое место ввода-вывода, возможно, вызванное шумным соседом.
Попросите Rackspace переместить вас на другой хост, войдя в его чат или позвонив. Они должны иметь возможность проверять использование хоста во время обработки вашего переноса.
Судя по опубликованным вами данным, это определенно узкое место ввода-вывода на сервере стойки. Как ясно показывает ваш график, большую часть времени ЦП тратит на ожидание ввода-вывода (т.е.ЦП ожидает завершения процессов ввода-вывода).
Обычно это вызвано низкой скоростью диска, и, поскольку это виртуальный экземпляр, вероятно, есть другие экземпляры, использующие большую часть операций ввода-вывода хост-системы. Я не вижу многого, что вы могли бы сделать, кроме как найти другого хостера (или убедить их перенести вас на другую хост-систему с меньшей нагрузкой на ввод-вывод, или установить там другой сервер на другой хост-системе и попробовать, если тот лучше).