Сильная загрузка диска

Юрис
Дата: 15.05.2003 15:44:52
Проблема то вообщем-то описана в топике.
Хотя если подробней то после перехода с 7.1 на 7.3.2 (пересона всей базы) возникла проблема производительности. По непонятной мне причине сильно (мягко сказано) возросла загрузка системы по причине постоянного чтения и записи на диск со стороны базы. Вот и хотелось бы узнать какие параметры стоит посмотреть дабы исправить ситуацию. А может это и вовсе не из-за параметров. Может кто встречался с таким явлением.
Niemi
Дата: 19.05.2003 09:21:34
Интересно , а как настроен в postgres.conf параметр cache.
Shweik
Дата: 19.05.2003 16:10:20
Гмм а что за ОС, как собран Постгрес?
Давеча пробовал 7.3.2 - подставил старый каталог с базаой $PGDATA
- никаких проблем.
Правда в конфиге никаких серьозных изменений не делал.
Постгрес собирал из сорцов под FreeBSD 5.0 RELEASE #0.
Думаю что твоя проблема не в Потргресе а где-то в системе.
Хотя всякое бывает 8(
В таких случаях обычно рекомендуют VACUUM ANALAYZE
и в качастве панацеии - pg_dump/pg_restore 8)
Кстати я не совсем понял - R/W операции выполняются даже
при отсутствии активных запросов?
Niemi
Дата: 19.05.2003 22:01:58
Shweik плзз, если не лень расскажи про дополнительные параметры во FreeBSD, а то где то доку видел, но потом потерял, хотя ежли покопать....
А было бы велтколепно если б описал весь процесс, а то я всё скомпилил и юзера создал, но вот с inidb так и не разобрался. Заранее спасибо.
Shweik
Дата: 20.05.2003 17:08:27
А чего тут особо разбираться - initdb - просто напросто генерит
структуру каталогов базы.
Дополнительные параметры? Я установку делаю обычно почти стандарту:
./configure
gmake
su
gmake install
# собрал постгрес
# adduser postgres ну этого пользователя я и не удалял
mkdir /usr/local/pgsql/data каталог создал
chown postgres /usr/local/pgsql/data сменил владельца с roota
на суперюзера
su - postgres #INITDB ОБЯЗАТЕЛЬНО запускаеться от суперюзера
который будет запускать и postmaster
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data # собственно запуск
# При преходе от версии к версии я его обычно пропускаю
# /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 &
# гмм на этом участке запихиваю в /usr/etc/rc.d/
# чу-чутьпеределанный скрипт из ./contrib/start-scripts/freebsd -
# и добавляю на всяк случай в crontab запуск проверялки жизнеспособности postmastera (правда ей еще ни разу не пришлось аварийно перещзапускать его 8) )
/usr/local/etc/rc.d/postgres.sh start # первый запуск.!
/usr/local/pgsql/bin/psql -c "sellect version()" template1
Вот и все - постгрес поднялся.
В postgresql.conf я указываю использование TCP socket,увеличиваю макс
число подключений и кэш на подключение.
Перезапускаем постгрес и начинаем собственно возню с базой!
Кстати _иногда_ можно поиграться с параметрами оптимизатора НО
я никогда этого не делал в конфе - тк подавляющее количество
этих настроек дают выигрыш для одних запросов и проигрыш для других.
Например enable_seqscan
(под впечатлением одной из ветокна нашем форуме я тоже с ним по игрался8) ) Результаты были прикольные - получалось что при
отключенном seq_scan выигрыш в скорости выполнения запросов с агрегатными функциями довольно ощутимый. А для други запросов - все наоборот... 8)
Основная IMHO существенная особенность установки Postgresa под FreeBSD
это NLS (это поддержка локали в сообщениях - например
libpq которая сообщения о ошибках выдает по-русски 8)) ) и то из проблем с gettex.
Может я и неправ - пусть гуру поправят - "чего делал отом и спел"
*вздыхая уходит
Niemi
Дата: 20.05.2003 18:47:20
Бравушки, жаль на этой неделе не удастся покопаться. Спасибки.
Юрис
Дата: 02.06.2003 11:27:31
Ос стояла OpenBSD 3.3. Но я вроде разобрался. Неделю тут собирал статистику по работе системы и базы. Пришёл к выводу что виновата была ОС. Насколько мне удалось понять из всей происходящей картины проблемы были с буферами обмена между памятью и диском. Однако никакие попытки пересборки ядра с увеличение размера памяти, которая используется для буферов результатов не дало. Не дало результатов и увеличение колличества разделяемой памяти, т.к. в отличии от FreeBSD в OpenBSD по умолчанию её мало для серьёзной рабочей машины (хотя FreeBSD со своими 32 Мб тоже зачатую не ахти). Вот. Так что у меня складывается впечатление что использовать OpenBSD в качестве сервера БД не очень разумно. По крайней мере мне не удалось найти решение и пришлось перейти на FreeBSD 4.8.
Если честно то был бы очегнь признателе тому кто укажем не на мои ошибки в плане конфигурирования OpenBSD систему потому что ещё никогда не сталкивался с такой проблемой. Может что-то пропустил или сделал не так. Хотелось бы услышать отзывы.
Спасибо заранеее всем за ответы.