Охотно поделюсь опытом — при 20 пользователей в реальном времени средний сервер глохнет, при 50 — дохнет. Речь идет именно о присутствии пользователей в реальном времени при частоте обновления 1 раз в секунду.
В свое время решал проблему производительности чата приобретением дополнительного сервера. Хорошо помогает и оптимизация в выде выноса движка БД на отдельный сервер.
То есть, к примеру, на основном сервере у вас работает веб-сервер с интерпретатором языка и хранением файлов, на дополнительном — MySQL. Для сильно бюджетных решений — многие продавцы виртуалок дают возможность использовать MySQL на выделенном сервере, вне ресурсов виртуалки.