Мы очень успешно работаем с PostgreSQL над умеренно большим проектом (примерно 12 ГБ данных в нашем рабочем наборе).
В настоящее время мы используем машину с 2 ГБ оперативной памяти и дисками 7200 об / мин. Вы можете представить, что производительность падает довольно быстро, даже с кластеризованными таблицами и правильными индексами, оптимизированными запросами и дизайном и т. Д. Мы проводим большую часть времени в ожидании ввода-вывода, как для операций чтения, так и для записи.
Мы кладем в коробку еще 2 ГБ ОЗУ и диск Velociraptor со скоростью 10 тыс. Об / мин, но это всего лишь временные меры, пока мы работаем над дальнейшими шагами. Весь набор обновляется очень часто, поэтому SSD отсутствуют (слишком дорого - этим проектом занимаются двое студентов без денег!), И мне как бы интересно узнать, есть ли у кого-нибудь еще какие-нибудь предложения по дешевизне (< 100 фунтов стерлингов / мес) серверные / VPS-решения, которые будут включать 12–16 ГБ ОЗУ и / или быстрые жесткие диски. Или, что еще лучше, альтернативное решение проблемы. Есть ли хосты, которые специализируются на хостинге баз данных?
Это своего рода пост «о боже, должен быть лучший способ», но основная суть этого - есть ли хосты или решения, доступные по этой цене, если нет, почему нет, и каковы дешевые решения для этого вроде проблемы?
Хостинг - это простая задача - проверьте Хетцнер. Я использую их, мои друзья используют их, и мы очень довольны предложением.
С другой стороны, чтобы дать вам некоторую перспективу, 12 ГБ определенно не являются «умеренно большим» набором данных. Мне было бы трудно классифицировать его даже как средний.
Это не для того, чтобы говорить с вами свысока - существует множество очень важных баз данных небольшого размера. И много крупных, не столь важных. Все зависит от того, насколько важны данные и / или операции с данными.
Что касается настройки - проверьте, что сказал xzilla, и прочтите о команде / выводе EXPLAIN ANALYZE. Это самая полезная часть PostgreSQL.
Вероятно, стоит дважды проверить, правильно ли вы настроили сервер для оборудования, на котором вы работаете. К настройкам, о которых следует позаботиться, относятся shared_buffers, effective_cache_size, ваши checkpoint_settings, размер wal_buffer, и я бы также убедился, что ваш work_mem не установлен слишком высоко. Я помогал написать вики-страницу, которая охватывает большую часть этого материала, это хорошее место для начала: http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server
Следующий вопрос может заключаться в том, чтобы посмотреть на выполняемые вами запросы, чтобы убедиться, что планы запросов не вызывают больше операций ввода-вывода, чем необходимо. Здесь могут помочь более совершенные запросы и улучшенные индексы.
О, еще одна мысль; вы не объяснили, какими на самом деле были базовые диски (и / или что вы планируете делать с новыми дисками), но, возможно, стоит настроить какой-либо тип системы рейдов или разделить ваши файлы xlog на отдельный набор дисков .
Лично я не знаю ни одного хостинга баз данных для Postgres по этой цене, который включал бы более глубокое исследование того, что происходит с вашей базой данных; большинство из них предоставит это вам.