координирование сценария для работы только одного из идентичных сбалансированных с загрузки серверов

3k qps для сервера того класса является относительно низким объемом в необработанном вводе-выводе и условиях пропускной способности памяти - я ожидал бы мочь получить более близкий 20k, если бы это был авторитетный сервер.

Тем не менее BIND 9.4.2 стар. Если можно прокрутить собственное или использовать non-RHEL RPMs, действительно необходимо попробовать BIND 9.7.x вместо этого и видеть, решает ли это проблемы производительности.

Кроме того, для использования больше чем 2 ГБ RAM, необходимо было бы работать на x64 в 64-разрядном режиме, а не x86.

0
задан 25 November 2011 в 00:49
2 ответа

Это довольно просто сделать с файлом блокировки в общей файловой системе, такой как NFS. Я предполагаю, однако, что у вас нет такой настройки.

Вот несколько идей, которые приходят в голову:

  1. Реализуйте блокировку какого-то общего ресурса или чего-то, к чему обе машины могут получить доступ. Например, могут ли они оба писать на какой-то внешний сетевой ресурс? Оборотная сторона: я уверен, много возможностей для состояний гонки.

  2. Используйте readhat DLM и блокировку доступа через perl DLM :: Client . Обратной стороной: как вы упомянули, может быть более тяжелым, чем вы хотите.

  3. Попробуйте ruby ​​lockserver Officer . Может быть весело, если ты увлечен рубином.

  4. Вот ' s еще один механизм распределенной блокировки Perl: IPC :: Locker . Преимущество: не требуется настраивать другую службу, например DLM ядра Linux.

  5. Используйте службу обмена сообщениями, например RabbitMQ , для блокировки. Опять же, наверное, довольно тяжеловес.

Я сам программист на Perl, так что, наверное, сначала попробую IPC :: Locker. Мне нравится простота этого подхода, если у вас всего два сервера.

2
ответ дан 4 December 2019 в 12:00

Для корпоративных решений вы можете использовать BMC Control-M . Альтернативой с открытым исходным кодом может быть Планировщик заданий

2
ответ дан 4 December 2019 в 12:00

Теги

Похожие вопросы