Почему тормозит Oracle 12c на Oracle Linux под Hyper-V?
Установил Oracle Linux 7 c Oracle 12c в качестве гостевой на Hyper-V (WinSvr 2012R2) все по инструкции. В качестве хранилища используются подключаемые базы (PDB). Все работает отлично пока не сделаешь UPDATE/INSERT с большим количеством записей (>100000): СУБД "зависает", подвешивая все подкюченные к нему клиентские приложения. В линуксе каких либо трудоемких операций не наблюдается, - система тупо ничем не занята. При использовании Windows в качестве гостевой ОС данная проблема не наблюдается.
У меня проблема была в железе, не работал кеш в рейдмассиве сервера, но использовался внутренний кеш hdd. Как только его переставало хватать при поступлении больших объемов данных, происходил фриз
Проблема с подвисанием может быть связана с активным переключением журналов и архивированием их (если это включено). У вас коммиты после каждой записи идут? Надо посмотреть нагрузку на ввод-вывод со стороны линукса и со стороны Hyper-V.
Возможно проблема между гостевой системой и гипервизором. Если попробовать на другом гипервизоре, например VmWare?
Алексей, коммит только один по окончанию update или insert по всей таблице (примерно 500 тыс записей). Сначала идет все нормально, потом зависание видимо связанное с рассинхронизацией с LogWriter. Видимо что-то связанное с работой I/O жесткого диска гостевой ОС, но при этом пробовали на гостевую систему копировать большие файлы, все протекает на ура. Нагрузка на ввод/вывод со стороны линукса и Hyper-v нулевая после повисания. В Oracle Enterprise Manager наблюдается 100% заполнение параметра Retention, который видимо как раз связан с журналом и его архивированием
а туда уже не пускает, оракл писит при этом в глушь, любое обращение вызывает зависание клиентской программы, в т.ч. и консоль. Сейчас зашел в консоль уточнил как называются параметры, которые переполняются: это тэйблспейс UNDOTBS1, подвисание происходит тогда, когда у него кончается свободное место, хоть он при этом Auto Extensible
Объемы не большие, чтобы так зависать, я все же склоняюсь к мысли, что проблема не в Оракле.
Вот что нашел в гугле - это не ваш случай? Там правда говорится про 2008R2, но мало ли, может проблема и в 2012 такая же.
By default, Windows Server 2008 R2 installs with the Windows Remote Management (WinRM) limited to 15 concurrent operations per user. To check the number of concurrent operations per user, run the following command on Windows host:
> winrm get winrm/config
...
Service
MaxConcurrentOperationsPerUser = 15
...
For some Oracle VDI deployments, this limit is too low and can cause communication problems between Oracle VDI and Hyper-V. When there are communication problems, the cacao logs typically contain the following error message:
SOAP Fault: The WS-Management service cannot process the request. The maximum
number of concurrent operations for this user has been exceeded. Close existing
operations for this user, or raise the quota for this user.
Actor:
Code: s:Receiver
Subcodes: w:InternalError
Detail: The WS-Management service cannot process the request. This user is
allowed a maximum number of 15 concurrent operations, which has been exceeded.
Close existing operations for this user, or raise the quota for this user.
If you see this error message, the solution is to increase the MaxConcurrentOperationsPerUser property to a value that is appropriate for your Oracle VDI deployment. To change the property, run the following command on the Hyper-V host:
> winrm set winrm/config/service @{MaxConcurrentOperationsPerUser="num"}
For example:
> winrm set winrm/config/service @{MaxConcurrentOperationsPerUser="200"}
Мне кажется это немного не то, это касается удаленного подключения к удаленному рабочему столу, я имею ввиду клиентов, использующих СУБД. Проблема видимо связано с записью на винт и кешированием журнала изменений, как только происходит заполнение кеша система СУБД встает. Попробую в качестве эксперимента другой дистрибутив Linux на гостевой машине.
Возможно, поскольку я дело с Hyper-V не имел, виртуализировал на KVM и VMware - там таких проблем с производительностью не было. Причем именно в этой связке - Oracle 12c/Linux, правда вместо Oracle Linux 7 был CentOS 7.
На мой взгляд да, проблема между гипервизором и гостевой системой - насколько я знаю, не все дистрибутивы работают нормально на Hyper-V.