Импорт данных в Linux и в Windows. Почему такая разница?

SergeyNZ
Дата: 14.10.2015 09:40:33
Здравствуйте
Есть сервер с Oracle 11.2.0.3 Windows 2008. Импорт базы размером 87Gb идет 2,5 часа
Возникла необходимость попробовать Oracle на Linux. На этом же оборудовании установил Oracle Linux 6.7 и Oracle 11.2.0.4.7(пробовал и 11.2.0.3 результат тот же)
Импорт стал 5,5 часов

Решил проверить на одной таблице, включил трассировку
ALTER SYSTEM SET EVENTS '10046 trace name context forever, level 12';

Дамп и данный находятся на разных физических дисках.
Кэширование для дисков в Windows отключено.
filesystemio_options=setall для Oracle на Linux

Параметры импорта следующие:
USERID='/ as sysdba'
SCHEMAS=ODB
DUMPFILE=EXPDAT.DMP
INCLUDE=TABLE:"IN ('BKL_PRI')"
LOGFILE=IMPORTT1.LOG
CONTENT=DATA_ONLY
METRICS=YES

Это результат на Windows 2008

OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS

call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1505 0.06 0.09 0 857 0 0
Execute 1744 47.51 148.43 1514 42937 836373 1396
Fetch 1602 0.17 0.13 23 12042 0 5088
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4851 47.75 148.66 1537 55836 836373 6484

Misses in library cache during parse: 337
Misses in library cache during execute: 301

Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
KSV master wait 1 0.25 0.25
Disk file operations I/O 11 0.02 0.04
wait for unread message on broadcast channel
11 1.01 2.19
Datapump dump file I/O 5329 0.11 9.21
direct path write 14458 0.21 85.90
db file scattered read 188 0.01 0.39
db file sequential read 35 0.00 0.02
control file sequential read 7 0.00 0.00
local write wait 4 0.01 0.06
buffer busy waits 1 0.00 0.00
enq: TX - contention 1 0.00 0.00
log file switch (private strand flush incomplete)

Это на Linux 6.7

OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS

call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 2074 0.08 0.08 0 103 0 0
Execute 5312 48.60 223.43 1740 48626 839198 1409
Fetch 12099 0.35 0.99 1246 44229 42 15501
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 19485 49.04 224.51 2986 92958 839240 16910

Misses in library cache during parse: 249
Misses in library cache during execute: 221

Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
KSV master wait 1 0.04 0.04
Disk file operations I/O 11 0.01 0.01
wait for unread message on broadcast channel
16 0.99 2.19
Datapump dump file I/O 5515 0.15 6.38
direct path write 6268 0.05 76.71
reliable message 1 0.00 0.00
db file scattered read 326 0.00 0.20
db file sequential read 254 0.01 0.62
library cache: mutex X 1 0.00 0.00
control file sequential read 7 0.00 0.00
direct path read 9 0.00 0.02
buffer busy waits 1 0.00 0.00
enq: HW - contention 1 0.00 0.00
local write wait 12 0.02 0.22
enq: TQ - DDL contention 1 0.03 0.03

Время waited на Linux даже лучше, но elapsed гораздо хуже.
Во время импорта заметил что на Windows(монитор ресурсов) скорость чтения/записи примерно 38-40Мб/с, а на Linux(iostat) 20-23Мб/с.
Почему? Может есть возможность как то увеличить эту скорость?
mefman
Дата: 14.10.2015 09:45:57
оракля на линукс ставили с соблюдением всех рекомендаций или next-next-finish?
тщт
Дата: 14.10.2015 09:55:32
SergeyNZ,

а для OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS где?
SergeyNZ
Дата: 14.10.2015 10:03:47
Устанавливал как в документации
oracle-rdbms-server-11gR2-preinstall.x86_64, потом сам Oracle. После установки настроил HugePage

это Windows

OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS

call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 0 0.00 0.00 0 0 0 0
Execute 0 0.00 0.00 0 0 0 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 0 0.00 0.00 0 0 0 0

Misses in library cache during parse: 0

Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
class slave wait 2 0.00 0.00
KSV master wait 1 0.00 0.00
direct path write 1 0.00 0.00

Это Linux

OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS

call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 0 0.00 0.00 0 0 0 0
Execute 0 0.00 0.00 0 0 0 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 0 0.00 0.00 0 0 0 0

Misses in library cache during parse: 0

Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
class slave wait 2 0.00 0.00
KSV master wait 1 0.00 0.00
Disk file operations I/O 1 0.00 0.00
direct path write 1 0.01 0.01
db file scattered read 5 0.00 0.00
db file sequential read 154 0.01 0.23
SergeyNZ
Дата: 14.10.2015 10:05:57
На Windows NTFS - c размером кластера 32Кб
SergeyNZ
Дата: 14.10.2015 10:07:03
На Linux - ext4

Filesystem volume name: <none>
Last mounted on: /oradata
Filesystem UUID: 7f140fd3-f91a-4bc3-bac6-1c7e7f6cb2f1
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 122101760
Block count: 488378000
Reserved block count: 24418900
Free blocks: 315001848
Free inodes: 122101705
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 907
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
RAID stripe width: 1048575
Flex block group size: 16
Filesystem created: Thu Oct 8 18:50:15 2015
Last mount time: Tue Oct 13 18:19:17 2015
Last write time: Tue Oct 13 18:19:17 2015
Mount count: 16
Maximum mount count: -1
Last checked: Thu Oct 8 18:50:15 2015
Check interval: 0 (<none>)
Lifetime writes: 2753 GB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: 5a44497d-8cfc-4483-b3b6-2759848890ea
Journal backup: inode blocks
landy
Дата: 14.10.2015 10:39:12
На ext4 filesystemio_options='ASYNCH' или NONE - нота 1487957.1

use_large_pages="ONLY' ???
ipcs -m - oracle использует?
SergeyNZ
Дата: 14.10.2015 10:52:45
landy,

This is a Linux defect known to be fixed in Oracle Linux version kernel-uek-2.6.39-200.29.3.el6uek.
У меня
3.8.13-98.4.1.el6uek.x86_64

use_large_pages='ONLY' Да. Предварительно сделав настройки в системе как написано в документации

HugePages_Total: 25605
HugePages_Free: 24053
HugePages_Rsvd: 24049
HugePages_Surp: 0
Hugepagesize: 2048 kB


[oracle@testserver arhiv]$ ipcs -m - oracle

------ Сегменты совм. исп. памяти --------
ключ shmid владелец права байты nattch состояние
0x00000000 557060 oracle 640 402653184 23
0x00000000 589829 oracle 640 53284438016 23
0x6ee06a04 622598 oracle 640 2097152 23

landy
Дата: 14.10.2015 11:03:14
a free что показывает ?
landy
Дата: 14.10.2015 11:04:17
Диски, где данные лежат - локальные ?