- Как рассчитать предельную допустимую нагрузку на сервер?
Понятное дело что выдерживамая нагрузка зависит от сервера и настроек ПО. Но может есть общепринятая формула?
Увы, такой формулы нет. Приходится все всегда примерно на глаз и сходя из опыта если он есть.
Всегда найдется причина, что не хватит мощности у сервера/серверов.
- Данные постоянно нарастают. Скоро закончится место на харде сервера.
Что изучить чтобы разобратся как распределять данные между множеством серверов и хардов?
Тут в общем нет четкого ответа, опять же все исходя из того как вы пишите свою CRM и ее возможности.
Самое простой пойти на вертикальное масштабирование. Те тупо увеличиваем мощности железо, ставим новые HDD, собираем RAID итд. Это самый простой способ.
Теперь о сложных. Насколько я понял с БД проблем нет, на худой конец ее можно вполне перекинуть на отдельную машину, что бы не замарачиватся с кластеризацией БД.
Теперь перейдем к файлам. На текущий момент можно использовать распределенное ФС такие как ceph и glusterfs,ocfs2 итд. Можно вполне спокойно добавлять пулы машин, к сожалению я не готов сейчас сказать, готовая ли у них именно CEPH FS для использования в продакшене. Можно использовать, что-то типа Hdfs из hadoop, но тогда надо будет тянуть весь hadoop,mapreduse итд итд. В общем это просто пример, пусть и плохой.
Можно хранить как блобы , используя eblob (делают русские люди)
reverbrain.com/eblob
В общем вариантов много, как пойти зависит только от вас.