Когда можно перестать оптимизировать ПО и начать наращивать "железо"?

Перед многими разработчиками "нагруженных" проектов встаёт вопрос - нужно ли продолжать оптимизировать ПО или будет эффективнее начать апгрейдить "железо"? Авторы сайта mysqlperformanceblog предлагают несколько рекомендаций.

Прежде всего, стоит задать себе следующие вопросы:

  • Насколько хорошо текущее оборудование? Иногда оборудование бывает настолько старым, что его будет оптимизировать гораздо дешевле, чем тратить время программистов.
  • Насколько сбалансировано текущее оборудование? Проверьте, нет ли такой ситуации, когда 2 из ваших 10 серверов нагружены, а остальные в большинстве проставивают.
  • Нет ли совпадений пиковых нагрузок и служебных работ? Вдруг основной прилив пользователей совпадает с временем проведения работ по бекапу или с выполнением ежедневных задач cron.
  • Все ли запросы, настройки и архитектура ПО оптимизированы? Бывают ситуации, когда правки my.cnf могут утроить производительность.
  • Если решили апгрейдить "железо", то что именно в нём?

Так же на эту тему авторы рассуждают здесь.