Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / Скорость загрузки данных / 25 сообщений из 47, страница 1 из 2
26.06.2008, 12:00
    #35395903
SkSergeyA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки данных
Доброе время суток !
Имею поставленную задачу - максимально быстро (ночь) перенести данные между двумя серверами.
Сервер1 - Windows2000AS,2x2Intel Xeon, 3 Gb-ОЗУ, RAID-5, Informix IDS 10.00.TC7, ~объем данных 100 Гб
Сервер2 - CentOS5.1, 2x4 IntelXeon, 8 Gb, RAID-10, Informix IDS 11.50.FC1
Времени на исследования дали неделю, которая заканчивается завтра :-((
HPL с полпинка завести мозгов не хватило (если кто поможет - размеры моей благодарности будут безграничны :-)) )
Посему взоры были прикованы к dbimport/dbexport.
Перечитав ветки форума в которых рассматривались аналогичные задачи, в особенности ветку с замерами производительности на РАВ и блочных устройствах, решил пока есть возможность, провести ряд своих экспериментов.
База объемом 15 Г заливалась из предварительно импортированных файлов.
Менялись только параметры onconfig и environment.
Вот итоги:
1. PSORT_NPROCS - not defined, PDQPRIORITY - not defined, onconfig - production: 1 час 02 мин.
2. PSORT_NPROCS - not defined, PDQPRIORITY =100, onconfig - Upload, lru 94,5/95: 0 час 56 мин.
3. PSORT_NPROCS =7, PDQPRIORITY =1, onconfig - Upload, lru 50/60: 0 час 54 мин.
После этого были попытки увеличить physfile с 2,2 Gb до 6 и увеличить buffers с 2 Gb до 4.
Никакого прироста эти попытки (проведенные по очереди) - не дали, в последнем случае даже наоборот :-(((.

Прошу помочь - какие еще настройки могут существенно повлиять на скорость загрузки.
onconfig прилагаю
...
Рейтинг: 0 / 0
26.06.2008, 12:15
    #35395963
Andron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки данных
Когда делаете заливку базы (импорт) то делайте это без журналирования - скорость должна возрасти существенно.
Заливку базы лучше делать с отдельного от чанков физического диска.
PDQPRIORITY и PSORT_NPROCS нужны для быстрого построения индексов.

HPL для переноса между разными типами серверов (*nix и windows) вроде бы не подходит?
...
Рейтинг: 0 / 0
26.06.2008, 12:23
    #35396010
Andron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки данных
Попробуйте также увеличить кол-во CLEANERS (например 64 или даже 128) - возможно ваши официанты не справляются с заказами :)
...
Рейтинг: 0 / 0
26.06.2008, 12:37
    #35396080
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки данных
Надо смотреть а реально создаются ли индексы в параллели?
Как загружена система во время заливки sar, sar -d, vmstat
Чего ждут сессии заливающие onstat -p, onstat -g wai
Лог информикса
Лог импорта, на что уходит основное время?
...
Рейтинг: 0 / 0
26.06.2008, 12:38
    #35396085
SkSergeyA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки данных
Насколько я знаю, на время импорта базы создаются в NoLogging.
И журнал для таких баз не ведется.
Или я не прав ?
...
Рейтинг: 0 / 0
26.06.2008, 12:46
    #35396115
SkSergeyA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки данных
Лог информикса во время заливки чист :-)
В той конфигурации которая приложена выше (onconfig), единственное сообщение было
WARNING: Buffer pool size is too small for read ahead operation
...
Рейтинг: 0 / 0
26.06.2008, 12:50
    #35396134
Алексан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки данных
SkSergeyAНасколько я знаю, на время импорта базы создаются в NoLogging.
И журнал для таких баз не ведется.
Или я не прав ? Если вы используете опцию -l dbimport'а, то база данных создаётся с журналированием, если не используете, тогда без журналирования. Операции DDL журналируются во всех базах, независимо от их режима журналирования транзакций.
...
Рейтинг: 0 / 0
26.06.2008, 12:52
    #35396143
SkSergeyA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки данных
А основное время уходит на вставку данных, есть несколько таблиц по 10 млн. записей и соответственно на построение индексов по этим табличкам.
...
Рейтинг: 0 / 0
26.06.2008, 12:58
    #35396165
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки данных
SkSergeyAА основное время уходит на вставку данных, есть несколько таблиц по 10 млн. записей и соответственно на построение индексов по этим табличкам.в принципе должно вставляться 200-500 тыс в минуту, т.е. 10млн это 50-20 минут.
...
Рейтинг: 0 / 0
26.06.2008, 13:03
    #35396182
SkSergeyA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки данных
АлексанЕсли вы используете опцию -l dbimport'а, то база данных создаётся с журналированием, если не используете, тогда без журналирования. Операции DDL журналируются во всех базах, независимо от их режима журналирования транзакций.

Импорт идет без опции -l
dbimport -c -d {dbspaces} -i {path} {base}
...
Рейтинг: 0 / 0
26.06.2008, 13:10
    #35396210
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки данных
SkSergeyAИмею поставленную задачу - максимально быстро (ночь) перенести данные между двумя серверами.
Сервер1 - Windows2000AS,2x2Intel Xeon, 3 Gb-ОЗУ, RAID-5, Informix IDS 10.00.TC7, ~объем данных 100 Гб
Сервер2 - CentOS5.1, 2x4 IntelXeon, 8 Gb, RAID-10, Informix IDS 11.50.FC1

Похоже, что вы не читали FAQ на эту тему. Прочитайте внимательно - найдете немало полезных советов именно для вашего случая.

02. Перенос больших баз данных с сервера 7.3 на 9.40
http://www.sql.ru/faq/faq_topic.aspx?fid=588

01. Как перенести большую БД на другую платформу сервера (например с Windows на AIX)?
http://www.sql.ru/faq/faq_topic.aspx?fid=587

Как выгрузить базу утилитой dbexport и загрузить с новым именем утилитой dbimport?
http://www.sql.ru/faq/faq_topic.aspx?fid=710

05. От чего зависит скорость выгрузки БД (dbExport) ?
http://www.sql.ru/faq/faq_topic.aspx?fid=589
...
Рейтинг: 0 / 0
26.06.2008, 13:11
    #35396211
Алексан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки данных
SkSergeyAДоброе время суток !
Имею поставленную задачу - максимально быстро (ночь) перенести данные между двумя серверами.
Сервер1 - Windows2000AS,2x2Intel Xeon, 3 Gb-ОЗУ, RAID-5, Informix IDS 10.00.TC7, ~объем данных 100 Гб
Сервер2 - CentOS5.1, 2x4 IntelXeon, 8 Gb, RAID-10, Informix IDS 11.50.FC1
Времени на исследования дали неделю, которая заканчивается завтра :-((
HPL с полпинка завести мозгов не хватило (если кто поможет - размеры моей благодарности будут безграничны :-)) )
Посему взоры были прикованы к dbimport/dbexport. Иеено эти утилиты предназначены для переноса баз данных между платформами.

SkSergeyAПеречитав ветки форума в которых рассматривались аналогичные задачи, в особенности ветку с замерами производительности на РАВ и блочных устройствах, решил пока есть возможность, провести ряд своих экспериментов.
База объемом 15 Г заливалась из предварительно импортированных файлов.
Менялись только параметры onconfig и environment.
Вот итоги:
1. PSORT_NPROCS - not defined, PDQPRIORITY - not defined, onconfig - production: 1 час 02 мин.
2. PSORT_NPROCS - not defined, PDQPRIORITY =100, onconfig - Upload, lru 94,5/95: 0 час 56 мин.
3. PSORT_NPROCS =7, PDQPRIORITY =1, onconfig - Upload, lru 50/60: 0 час 54 мин.
После этого были попытки увеличить physfile с 2,2 Gb до 6 и увеличить buffers с 2 Gb до 4.
Никакого прироста эти попытки (проведенные по очереди) - не дали, в последнем случае даже наоборот :-(((.

Прошу помочь - какие еще настройки могут существенно повлиять на скорость загрузки.
onconfig прилагаюЯ бы чуть изменил представленную конфигурацию: буферов бы настроил 1,5 млн, lru_min_dirty устаровил бы в 70, lru_max_dirty - в 80; DS_MAX_QUERIES поставил бы в 1, DS_MAX_SCANS - в 1048576, RA_PAGES оставил бы 64, RA_THRESHOLD - в 60. Ещё я слышал, что direct i/o на Линуксе работает очень хорошо, и потому попробовал бы поставить DIRECT_IO в 1. Переменную окружения PDQPRIORITY я бы поставил в 100 (это ускорит построение индексов и обновления статистики), но после импорта нужно поставить его в 0 и обновить статистику для хранимых процедур, иначе они будут работать потом с PDQPRIORITY=100 !), PSORT_NPROCS бы не устанавливал.
...
Рейтинг: 0 / 0
26.06.2008, 13:13
    #35396225
Алексан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки данных
SkSergeyAА основное время уходит на вставку данных, есть несколько таблиц по 10 млн. записей и соответственно на построение индексов по этим табличкам. Построение индексов и обновление статистики вы можете ускорить за счёт PDQ, вставку данных - за счёт хорошо настроенноого ввода/вывода.
...
Рейтинг: 0 / 0
26.06.2008, 13:14
    #35396230
SkSergeyA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки данных
Журавлев Денисв принципе должно вставляться 200-500 тыс в минуту, т.е. 10млн это 50-20 минут.
Пересчитал сейчас приблизительное количество строк для вставки - 75 млн.
Исходя из вышесказанного - скорость максимально возможная :-((((
...
Рейтинг: 0 / 0
26.06.2008, 13:17
    #35396242
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки данных
Может подойдёт военные хитрость:
большие таблицы разделить по строкам на "нужныстопудово завтра" и "можно долить INSERT - SELECT'ом следующими ночами"
...
Рейтинг: 0 / 0
26.06.2008, 13:27
    #35396280
SkSergeyA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки данных
vasilis
Похоже, что вы не читали FAQ на эту тему. Прочитайте внимательно - найдете немало полезных советов именно для вашего случая.
02. Перенос больших баз данных с сервера 7.3 на 9.40
http://www.sql.ru/faq/faq_topic.aspx?fid=588
01. Как перенести большую БД на другую платформу сервера (например с Windows на AIX)?
http://www.sql.ru/faq/faq_topic.aspx?fid=587
Как выгрузить базу утилитой dbexport и загрузить с новым именем утилитой dbimport?
http://www.sql.ru/faq/faq_topic.aspx?fid=710
05. От чего зависит скорость выгрузки БД (dbExport) ?
http://www.sql.ru/faq/faq_topic.aspx?fid=589

:-))
02. - этот вариант не пробовал, переносятся 4 дбспейса, в каждом от 200 до 600 таблиц
01. - в 11 версии Информикса dbimport невозможно запустить на Линукс сервере для импорта из 10
05. - попробую без вывода на экран :-))
...
Рейтинг: 0 / 0
26.06.2008, 13:30
    #35396298
SkSergeyA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки данных
АнатоЛойМожет подойдёт военные хитрость:
большие таблицы разделить по строкам на "нужныстопудово завтра" и "можно долить INSERT - SELECT'ом следующими ночами"

К сожалению даже разработчик этого приложения не уверен, какие данные данные можно оставить на потом :-(((
...
Рейтинг: 0 / 0
26.06.2008, 13:31
    #35396309
Алексан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки данных
SkSergeyAПрошу помочь - какие еще настройки могут существенно повлиять на скорость загрузки. onconfig прилагаю И ещё я бы настроил соединение через разделяемую память (я нашёл только NETTYPE soctcp,2,,CPU, что означает сетевое соединение).
...
Рейтинг: 0 / 0
26.06.2008, 13:39
    #35396330
SkSergeyA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки данных
Алексан И ещё я бы настроил соединение через разделяемую память (я нашёл только NETTYPE soctcp,2,,CPU, что означает сетевое соединение).

А можно подробней!
Я в этом направлении даже не смотрел
...
Рейтинг: 0 / 0
26.06.2008, 13:47
    #35396370
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки данных
SkSergeyAБаза объемом 15 Г заливалась из предварительно импортированных файлов.
Менялись только параметры onconfig и environment.
2. PSORT_NPROCS - not defined, PDQPRIORITY =100, onconfig - Upload, lru 94,5/95: 0 час 56 мин.
3. PSORT_NPROCS =7, PDQPRIORITY =1, onconfig - Upload, lru 50/60: 0 час 54 мин.
Это взаимно неподходящие требования.
установите PSORT_NPROCS =4, PDQPRIORITY =100
а также сделайте, по возможности, временные пространства на отдельных дисках - существенно поможет при индексировании.
SkSergeyAПрошу помочь - какие еще настройки могут существенно повлиять на скорость загрузки.
onconfig прилагаю
Почему то забыли увеличить
DS_NONPDQ_QUERY_MEM 128 # Non PDQ query memory (Kbytes)

Но для вас значительно эффективней (исходя из задачи максимально быстро выгрузить и загрузить БД на разных платформах) все же сделать свои скрипты загрузки (надеюсь, что рекомендованные ФАК-и все же будут прочитаны):
- обратить внимание на параметры локализации исходного и целевого серверов
- выливать данные dbexport-ом сразу на целевой сервер (чтобы потом не копировать с сервера на сервер и не перекодировать из вин в юникс формат)
- разделить SQL на отдельные части
- проверить названия ДБ-пространств и размеры экстентов, а также возможные ссылки на другие таблицы и БД
- отключить первичные индексы на больших таблицах
- заливать данные в несколько потоков параллельно (или хотя бы большие таблицы)
- отдельно заливать процедуры, триггера
- включить PDQ (предоставив максимум ресуросв)
- отдельно включить констрейнты и индексы
- собрать статистику нужного уровня
- выключить PDQ и собрать статистику по процедурам
...
Рейтинг: 0 / 0
26.06.2008, 13:55
    #35396405
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки данных
SkSergeyA02. - этот вариант не пробовал, переносятся 4 дбспейса, в каждом от 200 до 600 таблиц
При чем тут дбспейсы и количество таблиц ? О чем вы ?
SkSergeyA
01. - в 11 версии Информикса dbimport невозможно запустить на Линукс сервере для импорта из 10
Может имелось ввиду dbexport ?
А в чем ошибка или проблема ? С трудом верю, что такой возможности нет.
...
Рейтинг: 0 / 0
26.06.2008, 13:56
    #35396414
Andron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки данных
АлексанRA_PAGES оставил бы 64, RA_THRESHOLD - в 60

Почему так мало? Думаю что можно параметры RA на время импорта (для быстрого построения индексов на больших таблицах) ставить еще выше, поскольку данные лежат рядом, эффективность Read Ahead должна быть очень высокой.
Предлагаю увеличить параметры RA согласно документации:


Use the following formulas to calculate values for RA_PAGES and RA_THRESHOLD:
RA_PAGES = ((BUFFERS * bp_fract) / (2 * large_queries)) + 2
RA_THRESHOLD = ((BUFFERS * bp_fract) / (2 * large_queries)) - 2

bp_fract is the portion of data buffers to use for large scans that require read-ahead.
If you want to allow large scans to take up to 75 percent of buffers, bp_fract would be 0.75.
large_queries is the number of concurrent queries that require read-ahead that you intend to support.


Т.е. например RA_PAGES = 10000 и RA_THRESHOLD = 9998 это далеко не предел для построения индексов и статистики по большим таблицам.
...
Рейтинг: 0 / 0
26.06.2008, 14:00
    #35396428
SkSergeyA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки данных
vasilis
установите PSORT_NPROCS =4, PDQPRIORITY =100
Попробую.
vasilisа также сделайте, по возможности, временные пространства на отдельных дисках - существенно поможет при индексировании.
Это невозможно :-((
vasilis
Почему то забыли увеличить
DS_NONPDQ_QUERY_MEM 128 # Non PDQ query memory (Kbytes)

Но для вас значительно эффективней (исходя из задачи максимально быстро выгрузить и загрузить БД на разных платформах) все же сделать свои скрипты загрузки (надеюсь, что рекомендованные ФАК-и все же будут прочитаны):

К сожалению я еще не достаточно силен для этого, но могу отредактировать скрипты экспорта.
vasilis
- обратить внимание на параметры локализации исходного и целевого серверов
- выливать данные dbexport-ом сразу на целевой сервер (чтобы потом не копировать с сервера на сервер и не перекодировать из вин в юникс формат)
- разделить SQL на отдельные части
- проверить названия ДБ-пространств и размеры экстентов, а также возможные ссылки на другие таблицы и БД
- отключить первичные индексы на больших таблицах
- заливать данные в несколько потоков параллельно (или хотя бы большие таблицы)

т.е. можно запустить несколько dbimport или это можно делать из нескольких sqleditor ?

vasilis
- отдельно заливать процедуры, триггера
- включить PDQ (предоставив максимум ресуросв)
- отдельно включить констрейнты и индексы
- собрать статистику нужного уровня
- выключить PDQ и собрать статистику по процедурам

Ну вот есть чем сегодня ночью заняться :-)))
...
Рейтинг: 0 / 0
26.06.2008, 14:03
    #35396446
SkSergeyA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки данных
vasilis SkSergeyA02. - этот вариант не пробовал, переносятся 4 дбспейса, в каждом от 200 до 600 таблиц
При чем тут дбспейсы и количество таблиц ? О чем вы ?
SkSergeyA
01. - в 11 версии Информикса dbimport невозможно запустить на Линукс сервере для импорта из 10
Может имелось ввиду dbexport ?
А в чем ошибка или проблема ? С трудом верю, что такой возможности нет.

Конечно dbexport, описался :-))
-206 - The specified table (informix.sysseclabelcomponents) is not in the database.
вот такая ошибка при попытке запуска.
...
Рейтинг: 0 / 0
26.06.2008, 14:05
    #35396451
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки данных
Журавлев Денис SkSergeyAА основное время уходит на вставку данных, есть несколько таблиц по 10 млн. записей и соответственно на построение индексов по этим табличкам.в принципе должно вставляться 200-500 тыс в минуту, т.е. 10млн это 50-20 минут.
Если имеется ввиду только чистая вставка строк в таблицу без индексов, то вполне нормальна и скорость в 2 млн. строк в минуту, по крайней мере я это видел пару лет назад на сервере
OS : Win2003+SP1
Informix: 10.0.FC4
CPU : 2 x Xeon 3,6 GHz
Memory : 5GB RAM
Disk : RAID 10 (4x70GB SCSI 15000)
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / Скорость загрузки данных / 25 сообщений из 47, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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