3k qps для сервера того класса является относительно низким объемом в необработанном вводе-выводе и условиях пропускной способности памяти - я ожидал бы мочь получить более близкий 20k, если бы это был авторитетный сервер.
Тем не менее BIND 9.4.2 стар. Если можно прокрутить собственное или использовать non-RHEL RPMs, действительно необходимо попробовать BIND 9.7.x вместо этого и видеть, решает ли это проблемы производительности.
Кроме того, для использования больше чем 2 ГБ RAM, необходимо было бы работать на x64 в 64-разрядном режиме, а не x86.
Это довольно просто сделать с файлом блокировки в общей файловой системе, такой как NFS. Я предполагаю, однако, что у вас нет такой настройки.
Вот несколько идей, которые приходят в голову:
Реализуйте блокировку какого-то общего ресурса или чего-то, к чему обе машины могут получить доступ. Например, могут ли они оба писать на какой-то внешний сетевой ресурс? Оборотная сторона: я уверен, много возможностей для состояний гонки.
Используйте readhat DLM и блокировку доступа через perl DLM :: Client . Обратной стороной: как вы упомянули, может быть более тяжелым, чем вы хотите.
Попробуйте ruby lockserver Officer . Может быть весело, если ты увлечен рубином.
Вот ' s еще один механизм распределенной блокировки Perl: IPC :: Locker . Преимущество: не требуется настраивать другую службу, например DLM ядра Linux.
Используйте службу обмена сообщениями, например RabbitMQ , для блокировки. Опять же, наверное, довольно тяжеловес.
Я сам программист на Perl, так что, наверное, сначала попробую IPC :: Locker. Мне нравится простота этого подхода, если у вас всего два сервера.
Для корпоративных решений вы можете использовать BMC Control-M . Альтернативой с открытым исходным кодом может быть Планировщик заданий