Повторяю серию тестов на базе меньшего размера и рядом измерений.
Итак:
Тестовый сервер
4-х ядерный Intel I5 3.6ГГц
Intel Matrix (soft) RAID 0 6HDD 2Тb (пиковые линейные (HDTune)
чтение/запись 700/400 МБ/с) Все кеширование включено
Память 8Г
ПО
Операционка Win2008 R2 x64
FB V2.5.0.26074 CS Win32 (DefaultDbCachePages = 4096)
База 54G (размер страницы 16К)
Мониторинг Iarsn TasckInfo
Описание процесса тестирования.
Систему ничего не загружает кроме указанных задач.
Система и Win SWAP находитмся на отдельном физическом диске.
Все базы и их бекапы на другом RAID-диске
Из базы удаляем 100млн записей и запускаем Nbackup 0-го уровня.
Смотрим загрузку ядра процессом Nbackup.ехе (норминуем значение для 100%
поскольку система на 4-х ядрах)
Например TasckInfo показывает 25% для процесса Nbackup.ехе - это
означает что Nbackup.ехе грузит свое ядро на 100%
Нагрузку дисковой подсистемы смотрим тем же TasckInfo но уже для всей
системы целиком
Перед каждым тестом базу всегда восстанавливаем из backup-а (nbackup.exe
-u sysdba -p masterkey -R localhost:e:\test_db\retail.fdb
e:\test_db\retail_0.nbk)
Время выполнения восстановления 4м 40с (нагрузка дисковой подсистемы
200-300 м/с) что равно файловому копированию.
Размер создаваемого дельтатафла ~9Гб
Удаление данных происходит в отдельном коннекте.
Сначала запускается шаг1, после паузы в 5 секунд шаг 2.
Тест1
1. nbackup.exe -u sysdba -p masterkey -D OFF -B 0
localhost:e:\test_db\retail.fdb e:\test_db\retail_0_1.nbk
2. Удаление данных
Результат1
Загрузка процесса Nbackup 8-12%
Дисковый I/O во время создания копии 100-200мб/с
Загрузка FB-процесса удаления данных 40-60%.
Дисковый I/O во время сброса дельтафайла 30-40мб/с
Время работы Nbackup до момента сброса дельтафайла (запуска FB процесса)
7m 20s
Время сброса дельтафайла 5m 07s
Время удаления данных 11m 14s
ВНИМАНИЕ: Синхронное завершение процесса сброса дельтафайла и процесса
удаления данных.
Тест2
1. Удаление данных
2. Запуск nbackup.exe -u sysdba -p masterkey -D OFF -B 0
localhost:e:\test_db\retail.fdb e:\test_db\retail_0_1.nbk
Результат2 приблизительно аналогичный Результат1
Тест3 (без ключа -D OFF)
1. Удаление данных
2. nbackup.exe -u sysdba -p masterkey -B 0
localhost:e:\test_db\retail.fdb e:\test_db\retail_0_1.nbk
3а. После ожидания 22 минут закрываем коннект в котором происходило
удаление данных
Результат3
Загрузка процесса Nbackup: начало 60% - конец ~100%
Загрузка FB-процесса удаления данных: начало 15% конец 8%.
Дисковый I/O во время создания бекапа: начало 100мб/с конец 10мб/с
Рост нагрузки на проц и падение I/O линейное на протяжении всего этапа
... Данные удалились с коммитом. Коннект не закрываем. Время удаления
данных 15m 13s.
... Прошло 22 минуты с момента старта теста, т.е. 7 мин после завершения
удаления данных бекап прошел на 60%.
Загрузка процесса Nbackup 100%
Дисковый I/O 9м/с
... Надоело !!! Закрываем коннект в котором происходило удаление данных
Дисковый I/O 200-300мб/с
Загрузка процесса Nbackup 20%
Время работы Nbackup до момента сброса дельтафайла (запуска FB процесса)
27m 37s (т.е. за 5 мин прошло остальных 40% бекапа)
... Сброс дельтафайла
Время сброса дельтафайла 4m
Загрузка FB-процесса сброса дельтафайла: 20-30%
Дисковый I/O 60-80Мб/с
Тест4
1. nbackup.exe -u sysdba -p masterkey -D ON -B 0
localhost:e:\test_db\retail.fdb e:\test_db\retail_0_1.nbk
2. Удаление данных
Результат4 приблизительно аналогичный Результат3
Тест5
1. nbackup.exe -u sysdba -p masterkey -L localhost:e:\test_db\retail.fdb
2. Удаление данных
3. Копировани базы на тот-же диск с помощью FAR
Результат4
Загрузка FB-процесса удаления данных: 20%
Скорость копирования базы 100-150мб/с
Время копирования 8m 50s
... После копирования файла
Загрузка FB-процесса удаления данных: 80%
Время удаления данных 13m 33s