The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Активирование асинхронного ввода/вывода в Linux для Oracle9iR2 (async io oracle redhat linux)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: async, io, oracle, redhat, linux,  (найти похожие документы)
From: Державец Борис <dba477 at list.ru> Newsgroups: email Date: Mon, 9 Sep 2004 14:31:37 +0000 (UTC) Subject: Активирование асинхронного ввода/вывода в Linux для Oracle9iR2 Активирование асинхронного ввода/вывода в среде Red Hat Linux 9. Линкование Oracle9iR2 для использования AIO. Установка нового ядра с поддержкой AIO и патча для разделяемой библиотеки libaio.so 1. rpm -i kernel-2.4.20-35.9.i686.rpm с http://atrpms.com 2. rpm -i libaio-0.3.93-4.src.rpm 3. cd /usr/src/redhat/SOURCES 4. gunzip libaio-0.3.93.tar.gz 5. tar xf libaio-0.3.93.tar -C /tmp 6. cd /tmp/libaio-0.3.93/src 7. Корректировка файлов (следуя [1],[2]) : compat-0_1.c io_queue_init.c io_submit.c 8. cd /tmp 9. tar cvf libaio-0.3.93.tar libaio-0.3.93 10. gzip libaio-0.3.93.tar 11. cp libaio-0.3.93.tar.gz /usr/src/redhat/SOURCES 12. rpmbuild -ba /usr/src/redhat/SPECS/libaio.spec 13. cd /usr/src/redhat/RPMS/i386 14. rpm -i libaio-0.3.93-4.i386.rpm 15. Проверьте наличие файла /usr/lib/libaio.so.1 16. cd /lib 17. ln -s /usr/lib/libaio.so.1 libaio.so Линкование Oracle9iR2 для использования AIO Shutdown Oracle:- 1. cd $ORACLE_HOME/rdbms/lib 2. make -f ins_rdbms.mk async_on 3. make -f ins_rdbms.mk ioracle 4. cd $ORACLE_HOME/dbs Добавьте к файлам init.ora инстансов Oracle, установленных на машине :- disk_asynch_io=true filesystem_io=asynch Startup Oracle Литература. 1. http://www.hyperic.net/support/tech-notes/oracle-setup.htm 2. http://developer.osdl.org/daniel/libaio/patch.libaio-0.3-93.fix
Продолжение: Ядро 2.4.20-35.9 не поддерживает AIO под Red Hat Linux 9. Red Hat Kernel-rmps на http://atrpms.net не проходили aio-stress тестирование Рассмотрим два примера: 1.Нормальное поведение aio-stress под ядром 2.6.8 (ядро поддерживает AIO). # gcc -Wall -laio -lpthread -o aio-stress aio-stress.c #./aio-stress -s 300 -m -S -l -L -t 10 file1 dropping thread count to the number of contexts 1 file size 300MB, record size 64KB, depth 64, ios per iteration 8 max io_submit 8, buffer alignment set to 4KB threads 1 files 1 contexts 1 context offset 2MB verification off adding file file1 thread 0 latency min 0.07 avg 0.64 max 53.48 600 < 100 0 < 250 0 < 500 0 < 1000 0 < 5000 0 < 10000 completion latency min 0.02 avg 59.13 max 699.38 3625 < 100 883 < 250 228 < 500 13 < 1000 0 < 5000 0 < 10000 write on file1 (57.78 MB/s) 300.00 MB in 5.19s thread 0 write totals (25.23 MB/s) 300.00 MB in 11.89s latency min 0.22 avg 0.56 max 1.22 600 < 100 0 < 250 0 < 500 0 < 1000 0 < 5000 0 < 10000 completion latency min 0.01 avg 11.66 max 777.21 4610 < 100 122 < 250 56 < 500 11 < 1000 0 < 5000 0 < 10000 read on file1 (293.03 MB/s) 300.00 MB in 1.02s thread 0 read totals (292.75 MB/s) 300.00 MB in 1.02s latency min 0.07 avg 0.32 max 57.93 600 < 100 0 < 250 0 < 500 0 < 1000 0 < 5000 0 < 10000 completion latency min 0.02 avg 648.07 max 43866.41 3806 < 100 134 < 250 436 < 500 315 < 1000 43 < 5000 0 < 10000 < 62 random write on file1 (5.97 MB/s) 300.00 MB in 50.26s thread 0 random write totals (4.70 MB/s) 300.00 MB in 63.83s latency min 0.44 avg 0.68 max 30.32 600 < 100 0 < 250 0 < 500 0 < 1000 0 < 5000 0 < 10000 completion latency min 0.01 avg 2.36 max 166.30 4804 < 100 3 < 250 0 < 500 0 < 1000 0 < 5000 0 < 10000 random read on file1 (718.66 MB/s) 300.00 MB in 0.42s thread 0 random read totals (538.19 MB/s) 300.00 MB in 0.56s 2.Поведение aio-stress под Red Hat Linux 9. # uname -a Linux ServerI685 2.4.20-35.9 #1 Thu Jun 24 07:09:26 EDT 2004 i686 i686 i386 GNU/Linux # gcc -Wall -laio -lpthread -o aio-stress aio-stress.c # ./aio-stress -s 300 -m -S -t 10 -l -L file1 dropping thread count to the number of contexts 1 file size 300MB, record size 64KB, depth 64, ios per iteration 8 max io_submit 8, buffer alignment set to 4KB threads 1 files 1 contexts 1 context offset 2MB verification off adding file file1 thread 0 io_queue_setup(512) returned -38 (Function not implemented) Те же результаты и для 2.4.20-8 Выводы: 1.Удачная релинковка и рестарт Oracle с параметрами: disk_asynch_io=true filesystemio_options=asynch в дейтвительности ни о чем не свидетельствуют 2.Информация на http://atrpms.net не достоверна, по меньшей мере для kernel-rpms Red Hat Linux 9. Они не проходили aio-stress тесты !!! 3. В настоящий момент есть только две опции: а. RHEL AS (ES) 3 (2.4.21-20.EL Upgrade 3) б. Kernel upgrade up to 2.6.8 ( см. [2]) В свое оправдание,могу лишь сказать,что доступная версия aio-stress.c появилась на вебе лишь летом 2004 года. Такого рода код используют службы поддержки Red Hat Inc.c 2002-2003 года. Я же был совершенно уверен,что ядро 2.4.20-35.9 прошло aio-stress тест Литература 1.http://mirror.etf.bg.ac.yu/distributions/suse/people/mason/utils/aio-stress.c 2.http://www.grabinar.com/simon/aio.html
Активирование асинхронного ввода/вывода для Oracle9iR2(9.2.0.4) в среде Linux 2.6.8 Первое: Download aio-stress.c from [1] и откомпилируйте его: gcc -Wall -laio -lpthread -o aio-stress aio-stress.c Выполните aio-stress тесты и удостоверьтесь,что ядро поддерживает AIO Второе: Build "libaio-oracle" as root Download libaio-oracle-0.3.0.tar.gz - - исходный код для libaio-oracle version 0.3.0 с http://oss.oracle.com/projects/libaio-oracle/files в каталог /tmp $cd /tmp $gunzip libaio-oracle-0.3.0.tar.gz $tar xf libaio-oracle-0.3.0.tar $cd libaio-oracle-0.3.0 $./configure $make install Довавьте к /etc/ld.so.conf /lib /usr/lib /usr/local/lib Restart Linux. Выполните контрольный тест: lio_test. Далее: $su - oracle Shutdown oracle $mv $ORACLE_HOME/rdbms/lib/skgaio.o $ORACLE_HOME/rdbms/lib/skgaio.orig $cp /tmp/libaio-oracle-0.3.0/libaio-oracle.o $ORACLE_HOME/rdbms/lib/skgaio.o $make -f ins_rdbms.mk async_on $make -f ins_rdbms.mk ioracle Startup Oracle Modify screen SPFILE of OEM concole disk_asynch_io=true filesystemio_options=asynch Click "Apply" Restart instance Файл skgaio.o, участвующий в перелинковке бинарников Oracle : $make -f ins_rdbms.mk async_on $make -f ins_rdbms.mk ioracle был фактически заменен /tmp/libaio-oracle-0.3.0/libaio-oracle.o Ссылки: 1.http://ftp.belnet.be/linux/SuSe/people/mason/utils
Продолжение: Асинхронный ввод/вывод для Oracle9iR2(9.2.0.4) в среде Red Hat Fedora Core 2 Удобным и доступным для Oracle9iR2 AIO тестирования является Red Hat Fedora Core 2 (Kernel 2.6.5) Установка Oracle9iR2 в среде FC 2 подробно и технически правильно описана в статье Jeffrey Hunter:- http://www.idevelopment.info/data/Oracle/DBA_tips/Linux/LINUX_8.shtml Установка патча 9.2.0.5 рекомендована,но не обязательна. (при желании см. http://mirrors.cn99.com/oracle/9i/) Для создания базы данных - просто запустите "dbca" как "oracle". Однако версия libaio должна быть не 0.3.99, а 0.3.96. Иными словами ,после установки Oracle выполните: 1. # rpm -q libaio Если ничего не установлено, то выполняите п.2 сразу, иначе:- # rpm -e libaio-0.3.99-3.i386.rpm libaio-devel-0.3.99-3.i386.rpm + еще один зависимый "rpm". Название будет показано в сообшении об ошибке (Failed dependencies). 2. # rpm -ivh libaio-0.3.96-3.i386.rpm libaio-devel-0.3.96-3.i386.rpm Два последних RPM свободно доступны в Интернете (Google Search).

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру