Async IO HP-UX

ganza
Дата: 27.02.2007 17:52:29
Всем привет!

Есть следующая проблема.

Имеем 2 сервера HP-UX 11.23 Itanium.

На этих двух серверах стоит RAC 10.2(patch 10.2.0.2), на одном из серверов стоит база 10.2 EE(patch 10.2.0.2)

На 2 серверах используются raw устройства, настроен async io по доке с metalink.

При поднятии некластероной базы все процессы используют устройство /dev/async(fuser -u /dev/async), значит async io используется.

При поднятии кластерной базы(неклстерная база потушена) устройство /dev/async используют только DBWR процессы, остальные серверные процессы и процессы пользователей не используют /dev/async, напрашиваются мысли что async io используется не всеми процессами.

Может кто сталкивался с такой ситуацией ??
denix1
Дата: 01.03.2007 16:32:03
ganza

При поднятии кластерной базы(неклстерная база потушена) устройство /dev/async используют только DBWR процессы, остальные серверные процессы и процессы пользователей не используют /dev/async, напрашиваются мысли что async io используется не всеми процессами.

Может кто сталкивался с такой ситуацией ??

практически та же байда,
с 10.2.0.2 в РАКовой конфигурации /dev/async открыт только DBWRайтером
точно сейчас не помню, но кажется на голом 10.2.0.2 - без обновлений
процессов использующих /dev/async было побольше

с другой стороны
Note:139272.1
4.0 Checking that Asynchronous i/o is being used
================================================
Async i/o is being used if both the following are true:
a. /dev/async is open by DBWR
b. the relevant init.ora partameter is set (see Section 2.2)
c. the datafiles are on raw devices
To check if /dev/async is open by DBWR, do one of:
i. % fuser /dev/async
ii. % lsof -p <dbwr pid>
lsof can be downloaded from ftp://vic.cc.purdue.edu/pub/tools/unix/lsof
iii. use glance/gpm to check files opened by DBWR
ganza
Дата: 02.03.2007 17:40:31
И как быть в этой ситуации?

А самое главное, говорит ли это о том, что другие процессы кроме DBWR не используют async io ?
ganza
Дата: 02.03.2007 18:31:50
DBWR понятно пишет блоки, а если есть direc read и write операции которые идут мимо буфферого кеша ....
denix1
Дата: 05.03.2007 17:05:30
ganza
DBWR понятно пишет блоки, а если есть direc read и write операции которые идут мимо буфферого кеша ....

direct read и write не подразумевает их асинхронности,
да и нужны они большей частью для сортировок...

вот вошел я в маленький ступор, на предмет нужна ли асонхронность серверному процессу
при чтении блоков с диска ?
с асинхронностью записи все понятно, а вот с чтением блоков?...
проще говоря - чем может еще заниматься серверный процесс,
когда ему нужен блок с диска ? наверно только ждать...
//go sysin dd *
Дата: 05.03.2007 17:20:38
denix1
проще говоря - чем может еще заниматься серверный процесс,
когда ему нужен блок с диска ? наверно только ждать...
select * from v$sysstat where name like '%prefetch%';
denix1
Дата: 05.03.2007 17:50:03
//go sysin dd *
denix1
проще говоря - чем может еще заниматься серверный процесс,
когда ему нужен блок с диска ? наверно только ждать...
select * from v$sysstat where name like '%prefetch%';

интересное предположение - вот только чего-то мне кажется что prefetch относится
к предварительному чтению нескольких дополнительных блоков при выполнении
операции одноблочного чтения, т.е. серверный процесс сам не инициитует операции
предварительного чтение в то время когда ему нечем заняться, в виду того что еще не
закончилась операция асинхронного вывода, а запрашивает чуть больше последовательных
блоков чем необходимо для операции одноблочного чтение

могу ошибаться...

может есть ссылка на описалово ?
ganza
Дата: 05.03.2007 18:52:01
Привет всем!

А как насчет параллельного выполнения запроса?
Именно в этом случае для direct write и direct read нужна асинхронность, или я неправ?
denix1
Дата: 05.03.2007 19:02:42
ganza
А как насчет параллельного выполнения запроса?
Именно в этом случае для direct write и direct read нужна асинхронность, или я неправ?

для параллельного запроса всё должно быть так же как и для непараллельного
по крайней мере для одноблочного и многоблочного чтения
direct write и direct read вроде как для сортировок...

вот бы старшие товарисчи подключились к прояснению ситуации..
Ааз
Дата: 05.03.2007 19:53:55
denix1
вот бы старшие товарисчи подключились к прояснению ситуации..
Че там и кем открыто (без RAC и с async) менее важно, чем системные вызовы, которые реально используются. Что ежели попользовать tusc для обоих случаев (rac_on и rac_off), и половить асинхронные вызовы от обычных (не фоновых) процессов?

Всего
PS. С готовыми ответами в этот раз туго. Кажеццо, что асинхронные чтения не пользуются Oracle, но доказать не могу :-)