Купите некоторые аппаратные средства, но поместите их в свою тестовую лабораторию не в дата-центре. Затем подчеркните свое приложение на различных аппаратных средствах / комбинации программного обеспечения, пока Вы не находите разумный, который сделает то, что Вы хотите.
Конечно, необходимо будет спроектировать что-то, что может создать поддельный трафик против подобной производству базы данных, выполняющей тестовую копию приложения. Но кто сказал, что это будет легко.
Если Вы не делаете этого и просто делаете некоторый материал в производстве, Вы понятия не имеете, собирается ли это работать или нет, и Вы, возможно, потратили МНОГО технических вещей реализации усилия как кэши (который будет идти с их справедливой долей ошибок!) на чем-то, что не помогает.
Тест, тест и тест больше. Не бросайте изменения аппаратных средств/программного обеспечения в производство, пока у Вас нет хороших данных о производительности, показывающих, что это, вероятно, значительно улучшит вопросы. Техническое усилие является дорогим, тестовые аппаратные средства не (особенно).
Memcached является всего одной опцией, и Вы не должны, вероятно, рассматривать это, пока у Вас нет кэширования базы данных, работающего оптимально. Это означает помещать его на специализированное (64-разрядный, конечно) поле с разумной суммой RAM (не 4G - ноутбуки имеют это в наше время; 32G определенно доступно), и настройка его соответственно.
Вы не упомянули, насколько большой Ваша база данных, но если это будет вообще выполнимо, то Вы захотите попытаться получить его полностью в поршне (или по крайней мере горячие биты). Получение Вашей базы данных полностью в поршне сделает чтение, операции IO исчезают полностью и следовательно прекращают быть узким местом.
Представьте свои запросы базы данных. Существуют инструменты, живущие для того, чтобы сделать это - необходимо смочь моделировать производственную загрузку в тестовой среде. Прием должен избежать медленных запросов и гарантировать, что часто выполняемые быстры.
Если Ваши проблемы производительности связаны с синхронизациями IO, потому что Вы просто делаете слишком много транзакций для базы данных, удостоверяетесь использование RAID-контроллера с аварийным батарейным питанием, который ведет себя право (говорите поставщиком о них). Они дают намного больше операций записи IO, чем безбатарейный поддерживаемый один (потому что данные только должны добраться до кэша, прежде чем ОС получит подтверждение). С другой стороны, если Ваши данные не имеют значения так очень, рассмотрите ослабление параметров длительности базы данных (innodb синхронизация на фиксации).
Используйте команду "вершина" или установите htop для наблюдения, какие процессы едят большую часть способности системы. Я мог также войти в инструменты как sysstat (iostat / vmstat / и т.д.), но вершина использования будет первой вещью, которую я попробовал бы.
Так как это - общий сервер, могут Вы для управления всеми процессами всех пользователей и приложений?