powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PGSQL. Разочарование близко.
19 сообщений из 19, страница 1 из 1
PGSQL. Разочарование близко.
    #34259308
zsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
zsm
Гость
Добрый день!

Последние полгода активно изучаю/исследую PostgreSQL и пытаюсь применить его в одном из серьезных продуктов.
Первое впечатление было очень хорошим: стройность архитектуры, богатство возможностей, удовлетворительная производительность.
Однако, приступив к более тщательному тестированию реальной БД (достаточно большой), с прискорбием обнаружил много неприятных неожиданностей.
Первое, что бросилось в глаза - весьма и весьма далекий от совершенства планировщик запросов.
Сравниваю с тем, что выдает SQLServer2005 и то, что вижу, совсем не радует.
(Предупреждая возможные замечания, отмечу, что прочитал достаточно всяких наставлений по настройке и оптимизации PG. Кое-что помогло).

Те доработки, которые были сделаны PG Development Team за это время, хотя и улучшили ситуацию, но общее ощущение ненадежности, непредсказуемости все равно никуда не делось.

На прошлой неделе поставил последний релиз 8.2.1.
В postgresql.conf изменил только один параметр: constraint_exclusion = on (нужно для партиционирования).
Позавчера сервер в первый раз "неожиданно" упал во время запроса COPY... FROM.
Смотрю в лог: 2007-01-12 17:23:16 PANIC: could not open control file "global/pg_control": Permission denied
С тех пор возникают случаи, когда при попытке выполнить какой-нибудь SELECT, можно время от времени получить ошибку сервера a-la:
ERROR: ...................: Permission denied.
Причины столь странного поведения совсем непонятны.
Есть подозрение, что дело в fsync (раньше я его всегда отключал).

Хотелось бы услышать мнение более опытных коллег об их видении PostgreSQL в свете всего выше сказанного.
А именно, насколько надежной системой представлется PG?

Данный пост, ни в коем случае не провокационный ;)
...
Рейтинг: 0 / 0
PGSQL. Разочарование близко.
    #34259321
mozheyko_d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А с правами на эти файлы действительно всё в порядке?
...
Рейтинг: 0 / 0
PGSQL. Разочарование близко.
    #34259396
zsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
zsm
Гость
Так в общем и целом все вроде работает.
А вот иногда: "Ну не ДАЕТ!!!" ;-)
...
Рейтинг: 0 / 0
PGSQL. Разочарование близко.
    #34259456
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на 8.1.х было такое? на какой операционке работаете?
по поводу permission denied нашел только в одном из аннонсов:
автор
Make the bgwriter's error recovery path do smgrcloseall(). On
Windows this should allow delete-pending files to actually go away,
and thereby work around the various complaints we've seen about
'permission denied' errors in such cases. Should be reasonably
harmless in any case...

но было это 3го декабря 2006 и относится ли к вашей проблеме, не знаю )
...
Рейтинг: 0 / 0
PGSQL. Разочарование близко.
    #34259464
zsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
zsm
Гость
Только что обнаружил интересный пост:

pgsql-hackers-owner@postgresql.org;
Tom Lane [tgl@sss.pgh.pa.us]

[HACKERS] Idea for fixing the Windows fsync problem

I just had a thought about fixing those Windows "permission denied"
problems. The case that we believe we understand is where the bgwriter is trying to execute a previously-logged fsync request against a table file that is pending delete --- that is, actually has been unlink()'d, but some other process is holding an open file reference to it. The problem is only for fsync, not for write(), because the table drop sequence always invalidates every shared buffer for the table before trying to unlink it.

So: maybe the solution is to add a step to the drop sequence, namely revoking any pending fsync request, before unlink. This would not only clean up the Windows issue, it'd also let us remove the current hack in md.c to not complain about an ENOENT failure (which is really hardly any safer than ignoring EACCES would be, if you want to be honest about it).

The problem is that the ForwardFsyncRequest() mechanism is asynchronous:
currently, a backend could see pending fsync requests that are still in the shared-memory queue, but there's no way to tell whether the bgwriter has already absorbed some requests into its private memory. How can a backend tell the bgwriter to forget about it, and then delay until it can be sure that the bgwriter won't try it later?

We could have backends put "revoke fsync" requests into the shared queue and then sleep until they see the queue has been drained ... but there's not a convenient way to implement that delay, and I hardly want to just "sleep and retry" during every table drop. It'd probably take at least one more LWLock, and noticeably more complicated ForwardFsyncRequest() logic, to make this work.

Thoughts? Is this a reasonable solution path, or is it likely to be a waste of time? We know that there are causes of "permission denied"
that are not explained by the pending-delete problem.
...
Рейтинг: 0 / 0
PGSQL. Разочарование близко.
    #34259481
Andrey Daeron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zsm
Однако, приступив к более тщательному тестированию реальной БД (достаточно большой), с прискорбием обнаружил много неприятных неожиданностей.
Первое, что бросилось в глаза - весьма и весьма далекий от совершенства планировщик запросов.
Сравниваю с тем, что выдает SQLServer2005 и то, что вижу, совсем не радует.
(Предупреждая возможные замечания, отмечу, что прочитал достаточно всяких наставлений по настройке и оптимизации PG. Кое-что помогло).

Ну, это разные СУБД, так что и планы выполнения запросов могут быть разные. Я давеча с Ораклом сравнивал, в некоторых местах далеко не в пользу последнего, а в некоторых не в пользу Постгреса - могло бы и лучше раздуплиться.
Если есть конкретные предъявы - можно обсуждать, если нет - то наверно и обсуждать нечего.

zsm
Позавчера сервер в первый раз "неожиданно" упал во время запроса COPY... FROM.
Смотрю в лог: 2007-01-12 17:23:16 PANIC: could not open control file "global/pg_control": Permission denied
С тех пор возникают случаи, когда при попытке выполнить какой-нибудь SELECT, можно время от времени получить ошибку сервера a-la:
ERROR: ...................: Permission denied.
Причины столь странного поведения совсем непонятны.
Есть подозрение, что дело в fsync (раньше я его всегда отключал).

А какая ОС?
Я никогда fsync не отключал, никогда таких проблем не имел.

zsm
Хотелось бы услышать мнение более опытных коллег об их видении PostgreSQL в свете всего выше сказанного.
А именно, насколько надежной системой представлется PG?

У меня ПГ упал на памяти три раза.
1-й БедБДлок на винте, умерла таблица,
2-й умудрились поставить его на FAT32 и что-то случилось с БД,
3-й каким-то загадочным неизвестным науке способом доочищались места на винте до того, что удалили часть фалов PG.
Есть информация о серьезным применении еще 7.4 версии в учетных системах.

zsm
Данный пост, ни в коем случае не провокационный ;)
...
Рейтинг: 0 / 0
PGSQL. Разочарование близко.
    #34259648
postuser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня на PG8.1.4 работает учетная система трафика, к базе имеет доступ достаточно много пользователей (2-3 запроса есть постоянно, вообще клиентов около 1000). Работает уже около полугода на этой версии и еще полгода на более старой. Работает стабильно.
Одно падение было, но это по моей вине, сделал fsck на работающей системе, восстановил потом из дампа и заодно версию обновил :).
...
Рейтинг: 0 / 0
PGSQL. Разочарование близко.
    #34259671
zsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
zsm
Гость
Andrey Daeron
Ну, это разные СУБД, так что и планы выполнения запросов могут быть разные. Я давеча с Ораклом сравнивал, в некоторых местах далеко не в пользу последнего, а в некоторых не в пользу Постгреса - могло бы и лучше раздуплиться.
Если есть конкретные предъявы - можно обсуждать, если нет - то наверно и обсуждать нечего.

Да, предъявы имеются. Можно и обсудить.
Хотя, наверное, это надо напрямую девелоперам жалиться.
В сравнении с SQLServer2005, PG стабильно проигрывает приблизительно в 2 раза.
С Ораклом не сранивал.
Зато сравнивал SQLServer2005 c SQLServer2000 и надо честно признаться, чувствуется, что интеллектуальность планировщика на порядок стала лучше. Но это к слову...

Andrey DaeronА какая ОС?
WinXP Pro SP2 (English)

Andrey DaeronУ меня ПГ упал на памяти три раза.
1-й БедБДлок на винте, умерла таблица,
2-й умудрились поставить его на FAT32 и что-то случилось с БД,
3-й каким-то загадочным неизвестным науке способом доочищались места на винте до того, что удалили часть фалов PG.
Есть информация о серьезным применении еще 7.4 версии в учетных системах.

Продолжаю читать pg-рассылку.
Все больше прихожу к выводу, что какой-то косяк ребята привнесли в один из последних релизов.
Ну не может быть чтобы "друг, оказался вдруг...".
...
Рейтинг: 0 / 0
PGSQL. Разочарование близко.
    #34259719
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQLServer2005 у вас работал как блочник или версионник?
...
Рейтинг: 0 / 0
PGSQL. Разочарование близко.
    #34259915
zsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
zsm
Гость
SQLServer2005 у вас работал как блочник или версионник?
Как блочник.
Однако, и в версионном режиме аналогичные результаты.
...
Рейтинг: 0 / 0
PGSQL. Разочарование близко.
    #34259955
> WinXP Pro SP2 (English)

Нормальную операционную систему использовать не пробовали? Для PostgreSQL форточки - необязательная фича.
...
Рейтинг: 0 / 0
PGSQL. Разочарование близко.
    #34259990
alex_v13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Версия PostgreSQL для Win - реально только для разработки, т.к. вся функциональность есть, а производительность раза в 3-4 меньше чем на Unix-платформе. В частности из-за плохого кэширования/использования памяти виндой и таким же дерьмовым планировщиком процессов/коннектов.
В реально нагруженных проектах не рекомендую использовать.

Что же касается бага с правами, то он, скорее всего происходит из-за какого-то конфликта одновременного доступа к файлам разных серверных процессов, который винда почему-то не разруливает, вероятно, из-за недостатков по скорости обработки таких ситуаций.
...
Рейтинг: 0 / 0
PGSQL. Разочарование близко.
    #34260952
Andrey Daeron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex_v13Версия PostgreSQL для Win - реально только для разработки, т.к. вся функциональность есть, а производительность раза в 3-4 меньше чем на Unix-платформе. В частности из-за плохого кэширования/использования памяти виндой и таким же дерьмовым планировщиком процессов/коннектов.
В реально нагруженных проектах не рекомендую использовать.

Че за бред? Нормально под виндой работает, появляющиеся баги - фиксятся, равно как и под юнихом. Ессно в "серьезно нагруженных" проектах, да еще и 24x7 в принципе винда не рекомендуется. Ессно исторически unix-like версия стабильнее и надежнее, ей банально и лет больше и внедрений. Но про 3-4 раза падения производительности - это неправда, так же как и про "ненадежность" решения под винду.

Есть например замечательная СУБД Оракл. Есть проект который под ней живет. За последние полгода под Юнихом накопилось около 2000 падений, под виндой около 1000. Про множественные internal error я уже молчу. При этом на надежность - вроде никто не жалуется :)
...
Рейтинг: 0 / 0
PGSQL. Разочарование близко.
    #34261039
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
каким именно юнихом, патченый оракл или нет? :)

В пг решили особо не заморачиваться и реализовали пг под вин примерно также как пг под *nix (1 конект - 1 процес), в оракле используются потоки. Насколько мне известно, создание и поддержка процесса под win несколько дороже чем аналогичная операция для *nix-like систем.
Так что, имхо, для пг win платформа не совсем естественная среда обитания :)
...
Рейтинг: 0 / 0
PGSQL. Разочарование близко.
    #34261297
Andrey Daeron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
st_sergкаким именно юнихом, патченый оракл или нет? :)

FC4, 10GR2 не в этом дело. Факт етсь факт. И там тоже есть куча недофискенных багов.

st_serg
В пг решили особо не заморачиваться и реализовали пг под вин примерно также как пг под *nix (1 конект - 1 процес), в оракле используются потоки. Насколько мне известно, создание и поддержка процесса под win несколько дороже чем аналогичная операция для *nix-like систем.
Так что, имхо, для пг win платформа не совсем естественная среда обитания :)
Ну пусть даже и будет дороже. На сколько? На 1%? На 2%? Это ж не разы и легко компенсируется чуть более шустрым процессором+немного памяти. Может для сотен подключений (может конечно и для меньшего числа) это и будет в конечном итоге цифра о которой стоит говорить.

Те вещи, которые я гонял показывают, что по большому счету все находится в пределах статистической погрешности.

Т.е. если есть выбор между тем куда ставить ПГ на винду или юних - однозначно юних, если выбора нет - то это в достаточно большом количестве слуачев - не смертельно.
...
Рейтинг: 0 / 0
PGSQL. Разочарование близко.
    #34261532
alex_v13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andrey Daeron
Че за бред? Нормально под виндой работает, появляющиеся баги - фиксятся, равно как и под юнихом. Ессно в "серьезно нагруженных" проектах, да еще и 24x7 в принципе винда не рекомендуется. Ессно исторически unix-like версия стабильнее и надежнее, ей банально и лет больше и внедрений. Но про 3-4 раза падения производительности - это неправда, так же как и про "ненадежность" решения под винду.

Есть например замечательная СУБД Оракл. Есть проект который под ней живет. За последние полгода под Юнихом накопилось около 2000 падений, под виндой около 1000. Про множественные internal error я уже молчу. При этом на надежность - вроде никто не жалуется :)

Это получается по 5/10 падений в день - проект в разработке?
И вообще, как можно столько раз уронить базу ?

Я Погресс использую еще с 7.2.1 и на никсе и на винде (cygwin/native). И тесты делал многократно, просто по факту переноса баз на фронтал, т.к. разработку удобнее вести на винде, а вот фрон серваки все униксовые. Так вот, в разработке все нормально, и в не нагруженных пректах нет проблем, а вот чуть-чуть больше нагрузки и все - падение скорости раза в 3-4. Это я про винду.

Пример был совсем не давно. Умер коннект к обеим фронтальным серверам БД и временно работа всего сервиса, который я сейчас веду под Постгресом, была переведена на разработческую версию под виндой (юниксовая тоже отвалилась). Сервис стал сразу тормозить раза в 2-3.
Full Vacuum Analyze был сделан. Так что винда явно не лучшая платформа для Постгреса, как раз из-за плохго управления память и процессам.
...
Рейтинг: 0 / 0
PGSQL. Разочарование близко.
    #34261853
Andrey Daeron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex_v13
Это получается по 5/10 падений в день - проект в разработке?
И вообще, как можно столько раз уронить базу ?

ХЗ. Заметили по тому, что он в какой-то каталог складывал файлики с описанием AV.
Да, продукт в разработке.

alex_v13
Я Погресс использую еще с 7.2.1 и на никсе и на винде (cygwin/native). И тесты делал многократно, просто по факту переноса баз на фронтал, т.к. разработку удобнее вести на винде, а вот фрон серваки все униксовые. Так вот, в разработке все нормально, и в не нагруженных пректах нет проблем, а вот чуть-чуть больше нагрузки и все - падение скорости раза в 3-4. Это я про винду.

Пример был совсем не давно. Умер коннект к обеим фронтальным серверам БД и временно работа всего сервиса, который я сейчас веду под Постгресом, была переведена на разработческую версию под виндой (юниксовая тоже отвалилась). Сервис стал сразу тормозить раза в 2-3.
Full Vacuum Analyze был сделан. Так что винда явно не лучшая платформа для Постгреса, как раз из-за плохго управления память и процессам.
А можно в этом месте поподробнее? Сколько клиентов, какая нагрузка? На каком моменте умерла? Чего с дисковой? Ну и т.д.
Может скази решение с IDE сравнивается
...
Рейтинг: 0 / 0
PGSQL. Разочарование близко.
    #34262048
alex_v13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andrey Daeron

Да не, база не умерла, сдох один из сетевых каналов до серверной.
Сравнивается действительно SCSI с IDE, но на железке с 4GB памяти я думаю, это не настолько существенно. Тем более, что на тестовом сервере fsync=off.
...
Рейтинг: 0 / 0
PGSQL. Разочарование близко.
    #34262262
Andrey Daeron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex_v13
Да не, база не умерла, сдох один из сетевых каналов до серверной.

Да не, я про виндовую БД. На каком этапе умерла, и что стало причиной торомзов. Т.е. это вполне могла быть дисковая.

alex_v13
Сравнивается действительно SCSI с IDE, но на железке с 4GB памяти я думаю, это не настолько существенно. Тем более, что на тестовом сервере fsync=off.
4GB - это к сожалению не панайцея. На IDE тупорылое копирование 3-х фильмов с раздела на раздел роняет в даун дисковую подсистему :(
Ну, не удивительно. Я как бы не специалист, но скази существенно обгоняет IDE решение при множественных выборках с винта и записях на винт. Т.е. собсно чем скази лучше - когда много народу что-то с БД делает, приросты могут быть в эти самые разы.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PGSQL. Разочарование близко.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]