|
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 17
|
|
Полностью отказаться от обращения к жесткому диску13.04.2013, 17:48. Показов 9555. Ответов 15
Метки нет (Все метки)
привет
есть небольшая база. правил postgresql.conf: shared_buffers = 512MB work_mem = 32MB fsync = off logging_collector = off Есть острое желание, чтобы все хранилось в памяти: работа с жестким была исключена Это возможно? ЗЫ как вообще оценить размер базы? бэкап весит 1.8мб
0
|
|
| 13.04.2013, 17:48 | |
|
Ответы с готовыми решениями:
15
Разработка подсистемы обращения к жесткому диску постоянные обращения к не системному жесткому диску
|
|
1264 / 978 / 384
Регистрация: 02.09.2012
Сообщений: 3,021
|
|
| 14.04.2013, 17:53 | |
|
как вариант использовать RAM-диск!
НО!!! такое решение существенно понижает надежность!!! Падение сервера и ВСЕ! только бакапы спасут. По каким признакам оценивала, что база тормозит? Может еще не все средства оптимизации исчерпаны?
0
|
|
|
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 17
|
|
| 14.04.2013, 18:05 [ТС] | |
|
на надежность - фиолетово. курсач: работает ПО минуты 3, в работе обращается к базе. надо разогнать донельзя )) ибо до этого - ПО держало все в памяти, работало чуть быстрее
RAM-disk - не вариант. все должно работать на ПК под Win в ходе работы диспетчер задач пишет, что процесс postgresql вываливает на жесткий до 3 мб/с это совершенно не нужно. база дропается и наполняется заново при каждом запуске софтины: не надо ужасаться - иначе только юзать скрипт, который потрет все таблицы, индексы, функции и секвансы. так надо идеи? )
0
|
|
|
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 17
|
|
| 14.04.2013, 18:11 [ТС] | |
|
имелось в виду, что любой желающий, а не только обладатели RAM-дисков, могли фапать на получившийся продукт
0
|
|
|
1264 / 978 / 384
Регистрация: 02.09.2012
Сообщений: 3,021
|
||
| 15.04.2013, 17:28 | ||
|
не очень понятно откуда трафик 3Мб/с, если вы сказали размер бакапа базы всего 1,8Мб? Или это только структура без данных? По умолчанию pg_dump делает текстовый бакап.
0
|
||
|
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 17
|
|||
| 15.04.2013, 17:33 [ТС] | |||
|
в принципе, могу вывалить в тему структуру, бэкап и файл настроек сервера. мало ли... вдруг интересно кому...
0
|
|||
|
1264 / 978 / 384
Регистрация: 02.09.2012
Сообщений: 3,021
|
|
| 15.04.2013, 17:48 | |
|
У вас перебор случайно не "тупое" соединение нужных таблиц в JOIN (или под FROM) ?
Это как бы не айс совсем для базы! Попробуйте индексы пристроить что ли или попытайтесь как-то связать таблицы. Хотя полный перебор он и в африке полный перебор. Вряд ли получится быстрее, чем написать, например, 10 вложенных for'ов для известной структуры данных. Посмотрите еще вот: http://www.postgresql.org/docs... ource.html Там есть процесс background writer (18.4.5), кто пишет на диск. Может что и пригодится
0
|
|
|
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 17
|
|||||||
| 15.04.2013, 21:51 [ТС] | |||||||
0
|
|||||||
|
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 17
|
|
| 16.04.2013, 01:27 [ТС] | |
|
допил до такого вот состояния (в приложении)
самое забавное: нашел, что надо выставить в настройках, чтобы общение к диску максимум составляло 0,1мб/с synchronous_commit = off fsync = off но тогда работа становится по-настоящему черепашьей... больше чем в полтора раза падает скорость. я чего-то не понимаю? вроде работа в RAM-памяти должна быть быстрее... не?
0
|
|
|
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 17
|
|
| 16.04.2013, 01:43 [ТС] | |
|
бэкап базы... вдруг интересно кому станет. структуру (таблицы, ключи) можно не обсуждать =) она правильная
0
|
|
|
1264 / 978 / 384
Регистрация: 02.09.2012
Сообщений: 3,021
|
||||||
| 22.04.2013, 00:23 | ||||||
|
Если еще актуально?!
Я восстановился из вашего бакапа. С одним исключением: создал пользователя testuser и базу данных test. Работа под суперпользователем postgres не приветствуется. Могу привести лог восстановления, но сербезных ошибок не было. Так... ворнинги на индексы по умолчанию для первичных ключей и на grant/revoke на отсутствие привилегий. Скопировал запрос из поста и выполнил в pgadmin3... Получил время выполнения запроса = 83 ms (миллисекунды). Никаких танцов с бубнами вокруг сервера не было, вообще все это делал на старом ноуте (core2). Вот тоже самое из psql
0
|
||||||
|
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 17
|
|
| 22.04.2013, 00:58 [ТС] | |
|
актуально. вы все воспроизвели верно
проблема в этом месте. если заменить место в работе разрабатываемого ПО на алгоритм без использования БД, то работает все в 4 раза быстрее. хотел разогнать. у меня вот corei7 и 12 гб озу: запрос выполняется 45мс - ожидалось, что будет быстрее =) увы и ах. я уже смирился с тем, что работает медленнее проблема вот еще в чем: когда я создаю индекс (hash), например, по полю vv таблицы enum_rv, запрос выполняется 550мс... хотелось бы понять, в чем я не прав. ибо научрук тут мне не помощник =( вот таблица rss, например, формируется в самом начале и не меняется больше... какой индекс можно завести для нее, чтобы приведенный выше запрос заработал быстрее? заранее спасибо
0
|
|
|
1264 / 978 / 384
Регистрация: 02.09.2012
Сообщений: 3,021
|
||||||
| 22.04.2013, 16:56 | ||||||
|
Критическими с точки зрения производительности в запросе вот эти строки
Если я правильно понял суть таблиц, то VALUE в зависимости от типа RSS_PARAM присваивается из других разных таблиц (ENUM_RV, INT_RV, ...).
0
|
||||||
|
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 17
|
||||||||||||||||
| 22.04.2013, 17:24 [ТС] | ||||||||||||||||
|
ну да, все верно
0
|
||||||||||||||||
|
1264 / 978 / 384
Регистрация: 02.09.2012
Сообщений: 3,021
|
||
| 23.04.2013, 16:02 | ||
|
Hash - это построение промежуточной таблицы из исходной таблицы (с учетом условия, например для enum_rv только для записей, которые vv='Пришел'), которая потом будет соединяться с rss_param. Получается, что, чтобы соединить enum и rss_param, нужно как минимум два цикла: первый строит хэш, а второй по этому хэшу делает соединение. Выход... ну может быть пойти от вашего неСУБД алгоритма, посмотреть как там выполняется подобная операция и попытать подогнать.
0
|
||
| 23.04.2013, 16:02 | |
|
Помогаю со студенческими работами здесь
16
Привязка по жесткому диску Вердикт жёсткому диску
Доступ к жёсткому диску
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|