PostgreSQL объем используемой памяти. #564741


#0 by Lama12
Вопрос наверно тупой. PostgreSQL на Windows. Сколько оперативки он может съесть? Как увеличить объем потребляемой оперативки? На Windows совсем плохо?
#1 by Renium
Насколько я понял PostgreSQL больше дает нагрузку на дисковую систему, чем на оперативку. То есть его быстродействие зависит в первую очередь от скорости чтениязаписи на диск. 4 Гб оперативки на 10 пользователей, должно хватить... В данный момент обновляю УПП под PostgreSQL. Оперативки 8 Гб, а дисковая система очень слабая и всё очень медленно и печально.
#2 by Renium
УПП, кстати, почти пустая.
#3 by Живой Ископаемый
2 ну вот человек и спрашивает как сделать так, чтобы он помещал куски базы в кэш - в оперативку, чтобы менял записи там, а не непосредственно на диске... что по идее должно давать более чем 100кратный прирост производительности. :)
#4 by Lama12
Вот в том то и проблема. Но на диск дается нагрузка из-за того что не используется оперативка. Должна быть настройка. Смущает что под Windows только х86 вариант. И он у меня свои 3 Гб сожрал. :( Можно ли как-то поднять объем используемой памяти?
#5 by Lama12
Опередил :)
#6 by Живой Ископаемый
2 на сайте 1С есть тестовая сборка нового Постгресса, под 64-бит
#7 by Живой Ископаемый
2 еще момент... это например МС СКЛ работает с ФС на низком уровне.. а Постгресс - ради уницированности - наверняка нет, стало быть через кэш... у тебя кэш в винде какой?
#8 by Lama12
Не нашел. Кэш по умолчанию.
#9 by Renium
fsync=off запрещает запись на диск после каждого изменения данных. Скорость за счет надежности... Это увеличит расход оперативки за счет уменьшения количества обращений к диску, потом начнется аъхтунг, когда вместо оперативки начнет использоваться файл подкачки.
#10 by Живой Ископаемый
по умолчанию и для разных версий винды это разные вещи 2 ну а если он не начнет использоваться вовсе? Если памяти 40 Гиг, а треклятая субд использует не более 3 Гиг из этого бассейна? И все что мы хотм - это использовать скажем 8 Гиг, чтобы в ОЗУ помещалось например половина базы?
#11 by Lama12
Дома посмотрю. На работе сайт закрыт.
#12 by Renium
У меня сейчас из 8 Гб свободно 5.5 Гб при этом файл подкачки вырос с 700 Мб в начале обновления до 3,36 Гб на сейчас. Надежность подразумевает запись на диск результатов трансакций. Сначало пишется ЛОГ-трансакции, потом после его успешной записи на диск, изменяется сама таблица СУБД на диске. Если нужна скорость в ущерб надежности - используйте файловую СУБД, которую 1С даёт по умолчанию :-))) Как настроить PostgreSQL так чтобы он жрал оперативку, ответ - не знаю. Делайте больше оперативки и создавайте виртуальный жесткий диск и устанавливайте PostgteSQL на него :-)))
#13 by Живой Ископаемый
2 ну нет, это не серьезно... нормальные СУБД :) имеют возможность использовать СУБД, еще более нормальные позволяют указывать размер отдельных кэшей, процент грязности кэшей и т.д.. И кстати, пишется в лог на диск - это одно, а изменяются записи в таблице - и где эти таблицы мы хотим чтобы сейчас были - это другое.. человек пока про лог транзакций ничего не говорил, пусть и пишется на диск как сейчас и происходит... говорил что хочет чтобы таблицы менялись в памяти, а уж потом, по свободе, например, когда пользователи ни чего не меняют, когда очередь к диску свободна, уже экстернализировались бы таблицы на диск
#14 by Живой Ископаемый
"имеют возможность использовать ОЗУ"
#15 by Renium
Никто вам не мешает ставить 32 битный Postgres на 64 битную ОС, тогда ему будут доступно столько памяти сколько увидит 64 битная ОС, 64 битность PostgreSQL, вряд ли даст прирост производительности, так как опять же производительность зависет в первую очередь от скорости дисковой системы. Насколько я знаю, PostgreSQL имеет такую возможность - настраивать величину кэшей, но только с детальной настройкой помочь ни чем не могу, кроме, разве что, послать по известному адресу :-)))
#16 by Живой Ископаемый
2"32 битный Postgres на 64 битную ОС, тогда ему будут доступно столько памяти сколько увидит 64 битная ОС" - а вот и нет, а вот и враки... По крайней мере для Винды - хрен он что увидит
#17 by Живой Ископаемый
и потому человек и спрашивает про 64-битную версию Постгресса, чтобы она увидела более 3 Гиг РАМ, и могла бы заюзать под свой кэш больше РАМ, и ускорить операции записи в базу.
#18 by Renium
Серьезно? Не знал...
#19 by Живой Ископаемый
где-то тут была статья о том сколько какие приложения (сколькобитные и с какими ключами скомпиленные) могут заюзать в разных ОС (разной битности)
#20 by mikecool
админ в отпуск только ушел, он как то настраивал, что у нас вроде как постгри ест больше оперативки, нежели винт как - хз, не скажу появится только через 2 недели но - постгри на линухе
#21 by Renium
Теперь знаем к кому приставать с вопросами :-)
#22 by Renium
я этот вопрос изучу. Я как то даже не задумывался на эту тему...
#23 by Живой Ископаемый
2 "Виртуальное адресное пространство для одного 32-разрядного процесса"
#24 by Renium
Под одним процессом следует понимать один postgres.exe в диспетчере задач?
#25 by Живой Ископаемый
да... а что, можно сделать так чтобы два процесса обслуживали одну базу данных?
#26 by Renium
Я не знаю этого. Но у меня сейчас в состоянии покоя висит 7 процессов. Я понимаю, что за изменения таблиц отвечает из них один процесс, один за вакуум, третий за лог... и каждому их них доступно по 3 гига. Значит и тому, что записывает изменения доступны только 3 гига, раз он 32 битный....
#27 by Живой Ископаемый
и все процессы называются одинаково? серьезно? На как бы там ни было, интересует чтобы процесс который пишет непосредственно в базу данных - а их... ну... не могу представить чтобы их было несколько для одной базы данных, хотя это конечно ничего и не доказывает кроме отсутствия у меня фантазии... так вот чтобы он использовал-то памяти побольше... Ну. :) меня бы на месте ТС интересовало.
#28 by Renium
Ну да, я так и думаю, что только один из них пишет в таблицы. Именно о нем речь и идёт. Всё верно, ему доступно только 3 гб памяти, что бы увеличить этот объем нужно поставить 64 битный Postgres, а что бы заставить использовать оперативную память, вместо того что бы постоянно писать низменения на жесткий, нужно разбираться с настройками. :-)
#29 by Живой Ископаемый
вооот... с волшебными крутилками, которые наверняка есть.... вот о них и грезит ТС.
#30 by Renium
Ну тут я ему ничем помочь не могу. Зато понял, что мне нужно ставить 9-ю 64-битную версию с сайта 1С, а потом я сюда приду с воплем - "почему не могу восстановить базу, из дампа сделанного из 32 битной версии?" :-) Такие вопли читал на форумах, пока пытался разобраться с настройками.
#31 by Lama12
Ждем админа :)
#32 by _Atilla
"Насколько я понял PostgreSQL больше дает нагрузку на дисковую систему, чем на оперативку. То есть его быстродействие зависит в первую очередь от скорости чтениязаписи на диск. " Если PostgreSQL нагружает дисковую систему... один из вариантов ускорения дисков это делать чередующими. Бери 4 диска и сделай их чередующими.
#33 by _Atilla
Теоретический быстродействие диска должен быть увеличено 4 раза.
#34 by МаленькийВопросик
кстати, тут читал, что на 8.2 комфортнее базы создавать на пг. проверяли кто-нить?
#35 by kuromanlich
ничего отличающегося от создания баз на 81 не нашел
#36 by ilkoder
У нас все базы на постгри (пока). Насколько я понял там каждое подключение пользователя создает подключение к  базе, то есть если у нас около 60 пользователей в бухгалтерии, то около 50 подключений к базе (хорошо в проге pgadmin видно). Винты sas - зеркало, стоит на линуксе, 8гб оперативки. Но когда на этот же сервер поставили зарплату (еще 30 человек) то начались жуткие тормоза в обеих базах. Так что зарплату вернули обратно на старый сервак. А по настройкам памяти лучше всего у Гилева
#37 by ice777
на win плохе. Не заточен.
#38 by ice777
ээ.. а как же это, зарплатчиков 30 человек? ;)
#39 by ilkoder
- да у нас там начальство нафантазировало - сделали формочку чтобы в цехах всякие-разные мастера-экономисты табель заполняли каждый день... типа кто прогулял, кто опоздал...
#40 by Renium
Спасибо - изучу...
#41 by Renium
RAID-0 штука не надежная, лучше RAID-10. То, что быстродействие диска увеличиться, не совсем так. Время поиска записи на диске не уменьшается, время случайной записи на диск не уменьшается, чем больше в работе доля случайных записей, тем более в меньшую сторону будет отличаться прирост производительности от теоретического...
#42 by Живой Ископаемый
Не, он прав - чем больше шпинделей, тем быстрее... в среднем. Но это а) дороже... б) не имеет настолько разительного эффекта как правильно настроенный кэш. "It’s All About the Spindles, Baby If the SAN creates a performance bottleneck, then one discussion you will want to have is about the spindles. A spindle is a SAN administrator’s slang for an individual drive that is combined together with other drives to make arrays. For example, you could have ten disks in an array, build five logical volumes on those ten disks, and each volume would have ten spindles. But if two or more of those volumes are put under stress, then all ten spindles are under stress. In an ideal configuration, your SAN would have as many spindles as possible and a minimal chance for resource contention. Want to have some fun? Go and ask your SAN administrator this question: “If my current LUNs were converted into physical disks, how many spindles would I have allocated?” If the number is low, then you may have cause for concern. Again, that is why I stress the importance of benchmarking. "
#43 by Renium
Я с этим не спорю, я говорю, что быстродействие не прямо пропорционально количеству шпинделей. А правильно настроенный кэш, это конечно важно.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С