. уже 2 дня схожу с ума и прошу помощи.
У меня есть программа, разработанная в delphi (начало 2000-х примерно), которая обращается к базе данных firebird v3, в настоящее время установленной на том же компьютере (windows server 2016 x64 -db и программа x86).
Машина представляет собой виртуальную машину, настроенную на vmware esxi, я пришел к выводу:, если я настрою виртуальную машину только с 1 виртуальным процессором, программа будет работать очень хорошо, если я также настрою ее с 2 виртуальными процессорами (1 сокет и 2 ядра)и более, производительность снижается вдвое.
Проблема в том, что, оставив только один виртуальный ЦП, ЦП постоянно загружен на 100%, даже только для заданий сервера Windows (, например, для поиска обновлений и прочего).
Есть ли у вас какие-либо советы?
PS:Я не могу переключиться на firebird x64, потому что многие библиотеки x86.
PPS:ОС на виртуальной машине — Windows Server 2016 Standard ed
Если вы зафиксируете привязку процесса к одному ядру, другое ядро останется свободным для других процессов. В зависимости от фактической проблемы с планированием может возникнуть необходимость настроить сервер Firebird на то же или другое ядро.
Однако, поскольку ESXi также виртуализирует ядра ЦП, он будет продолжать перемещать ядра виртуального ЦП между вашими физическими ядрами. Возможно, вам также потребуется исправить привязку виртуальных машин к определенным ядрам.
Вы должны знать, что такая настройка вызвана плохо написанным или сильно устаревшим программным обеспечением. Вы должны серьезно заняться обновлением кода.
Оставить гостя на одном ЦП. И задокументируйте причину в некоторых заметках об этом госте в инвентаре.
Уделяйте больше внимания показателям производительности приложений, а не вводящим в заблуждение базовым показателям, таким как загрузка ЦП. Отвечают ли интерактивные приложения? Выполняются ли пакетные запросы за приемлемое время? Если это так, не беспокойтесь о процессоре.
Редактировать:«Заблокировать» уровни низкой производительности не было в вашем исходном вопросе, это важный контекст. Решение этой проблемы может стоить некоторых дополнительных усилий.:
Это известная проблема FireBird.
Я управлял некоторыми клиентами, использующими FireBird для различного программного обеспечения, и статистику многопоточности сложно настроить с помощью.conf, но сначала вы должны установить Firebird с настройками, необходимыми для использования многопроцессорного сервера, классического сервера.
Не забывайте, что клиентскому приложению также нужна многопоточная безопасная библиотека, если вы хотите быть уверенным.
Thread-безопасная клиентская библиотека
Thread-safe Client Library Dmitry Yemanov Vladyslav Khorsun Alex Peshkov Tracker reference CORE-707. The client libraries, including the embedded one, can now be used in multi-threaded applications without any application-level
синхронизация.