Arkasha18
@Arkasha18
SysAdmin

Какое кластерное решение выбрать?

Посоветуйте как лучше организовать кластер для сайта (bitrix), когда основная нагрузка приходится на диски (запись) и этого не избежать и не чего в коде менять на данный момент нельзя, но решить проблему надо.
На данный момент используется RAID (железо) с высокоскоростными дисками, и вроде как все работает, но простаивает CPU и память, хочу переехать на кластеризацию в облаке для регулировки мозности сервера в зависимости от потребления. Будут два сервера фронта и два под базу, но скорость дисков везде у провайдеров сколько тестировали даже рядом не сравниться с RAID железным так как в рейде свой RAM скоростной и сайт начинает тупить без него.
Вопрос - существует ли какие то кеширующие решения для файловой системы, может быть какие то сетевые файловые системы которые будут работать шустрее SSD, нагрузка не постоянная на диски, а скачкообразная, но сайт тормозит именно из-за времени доступа к дискам.
  • Вопрос задан
  • 147 просмотров
Пригласить эксперта
Ответы на вопрос 4
shambler81
@shambler81 Куратор тега Linux
К сожалени вы не описали битрикс у вас или б24, так что пишу по обоим сразу, разница не значительна
1. любой сервер на SSD прекрасно справляется по I-O дисков, iotop -okaв студию, тем более Nvme таких тарифов уже как грязи, никакйо рейд на обычых ssd даже близко не встанет с совершенным на nvme. а 2 Гб в секунду вам хватит за глаза. как минимум это на 1 два порядка больше чем скорость канала.
3. Количество процессоров не добавит производитильности битрикс, ее добавит лишь частота на камне. Количество увеличит только если вашему серверу плохо. В штатной загрузке LA =3-10 никаких от количества камней пользы не будет никакой.
4. Как и от оперативки на последних версиях пхп битрикс сатл есть достаточно мало памяти, и 16 ему реально с запасом включая кеш бд.
5. Поднятия даже всего сайта в кеш памяти не даст ему ощутимого прироста, так что ваш рейд железный опять же ничего не даст. Поскольку 99% времени это запросы в бд, и отдача статики и то и другое этимне увеличить.
6. Что взять
1. Битрикс ВМ умеет собирать кластер, но нужно неплохо знать линукс там нужен напильник. Последний раз я делал так https://www.mindomo.com/mindmap/-nebo-2c548660f4b4... Как вы видите кластер имеет непропорциональную динамику к увеличению сложности.
2. Кубернетас ваш выбор и Яндекс облако ( не путать с диском)
Сам сайт битрикса давно уже в кубернетес.
Его сейчас в стране предоставляют 4 компании
гугл
яндекс
селектел
мали
Если кубертенас не потяните сразу, то берите яндекс облако и на нем просто поднимите впс, его будет легко масштабировать как горизонтально так и вертикально. ( хотя если бы вы дали конфигурацию вашего железа то можно было бы более детально что-то обсудить)

7. Попробуйте последнее поколение камней плюс nvme - возможно это просто решит всю вашу проблему.
8. Скорее всего вам проще сйчас пойти по следующему пути

1. Повысить php до 7.4 ( прирост в зависимости от текущей версии, если она еще 5.6 то колоссальный, если в рамках 7 то до 30%
2. Оптимизация кеша в битирксе, как правило он сделан просто через ж. тут прирост может быть до 2000% с легкостью
3. Перевод самых тяжелых выборок на чисты D7 да прийдется немного пересобрать сайт, но если большое количество сойств и привязок то никуда не денешся ( от 30 К товаров) прирост в таком раскладе будет до 20000%
4. Если есть очень большие массивы данных выкинуть их в hiload.
У этого подхода есть свой основной плюс, да местами тут могут понадобится серьезные временные вливания, но вы не наращиваете сложность проекта, что сильно отражается на его устойчивости ( поддерживать кластер сложней и дороже чем просто сервер притом многократно) как минимум это системы мониторинга и мониторинг монитрингов. А как правило оптимизация самого сайта на битриксе откровенно на 2. проще заняться именно этим.
Если вы покажете сайт то будет проще.

Помните что до 50К в день сайт легко живет на 1 сервере и это с 300К товаров.
Проще оптимизировать сам код, увеличивать сложность и "нестандартность" решения. Да последнее рано или поздно будет но лучше поздно, это финансово дешевле.

Если еж у вас обычный HDD посколку б24 очень прожорлев то тут все проще.
Подключайте основные папки аплоада на яндекс облако или селектел облако, можно это сделать прям в битриксе. Как показывает практика это почта аплоад в задачах и тд. Все по своим папкам как правило это 1-10 документов или фоток, что лекко поднимается с облака без проблем, нет необходимости на самом сервере держать весь этот пакет помойки.
Если же у вас hetzner ( я бы вам его под б24 рекомендовал поскольку самое мощьное железо за адекват деньги) то можно просто докупить диск(облачный) и примонтировать его через fstab в аплоад, 10 Тб вам за глаза хватит. да и кор 9 и последние райзены там дешевые а под б24 это то что доктор прописал.

Тут я более подробно писал
https://klondike-studio.ru/standards/trebovaniya-k...
Ответ написан
Sanes
@Sanes
!
Raid можно расширять практически до бесконечности. Остальное вам вряд ли подойдет. Нагрузка наверное на MySQL? Ничего похожего на шардинг или репликацию в Б24 не встречал.
Ответ написан
@vitaly_il1
DevOps Consulting
скорость дисков везде у провайдеров сколько тестировали даже рядом не сравниться с RAID железным

Какой диск вы тестировали в AWS?
Попробуйте EBS Provisioned IOPS SSD (https://aws.amazon.com/ebs/features/).
Ответ написан
babarun
@babarun
Безумный план моих идей в руках больных людей
но простаивает CPU и память

+
так как в рейде свой RAM скоростной и сайт начинает тупить без него

С такими симптомами надо не железо наращивать, а разбираться почему фронт так забивает БД. Надо включать профилировщик, смотреть какие запросы приходят в базу и план их выполнения.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы