Назад | Перейти на главную страницу

Можно ли настроить «быстрый сбой» хостов SMB / CIFS?

У нас есть файловый сервер Windows 2008, который периодически отключается. Когда он не работает, веб-серверы Windows 2003 накапливают запросы с ожидающими файловыми операциями.

Я провел несколько тестов с использованием ColdFusion и заметил, что если вы запрашиваете файл на заведомо неработающем или несуществующем сервере, время ожидания первоначального запроса составляет 15 секунд. Последующие запросы быстро завершаются неудачей в течение следующих 10 секунд или около того. Затем следует еще один тайм-аут 15 секунд, и шаблон повторяется.

Я хотел бы настроить как максимальное количество времени, которое может занять запрос к несуществующему серверу (15 секунд), так и время кэширования того факта, что сервер не работает (10 секунд).

Это что-то можно настроить на клиентах Windows?

Изменить: я получил снимок из Wireshark, показывающий пакеты службы именования Netbios:

No.     Time        Source                Destination           Protocol Info
     90 2.184614    172.27.8.7            172.27.8.255          NBNS     Name query NB CHASE-IE<20>
     97 2.920946    172.27.8.7            172.27.8.255          NBNS     Name query NB CHASE-IE<20>
    106 3.671325    172.27.8.7            172.27.8.255          NBNS     Name query NB CHASE-IE<20>
    136 12.936379   172.27.8.7            10.0.2.15             NBNS     Name query NBSTAT *<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>
    140 14.436181   172.27.8.7            10.0.2.15             NBNS     Name query NBSTAT *<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>
    142 15.936134   172.27.8.7            10.0.2.15             NBNS     Name query NBSTAT *<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>

Вы можете увидеть 15 секунд, которые занимает первоначальный запрос. Похоже, он выполняет широковещательную рассылку UDP на всю подсеть (172.27.8.255). Он не получает ответа, а затем каким-то образом получает правильный IP (10.0.2.15), возможно, через DNS. Затем он тратит несколько секунд на тайм-аут для этого сервера (он не в сети).

Мне удалось сократить начальный период ожидания с 15 до 2 секунд, поместив сервер в lmhosts.

  1. Отредактируйте c: \ windows \ system32 \ drivers \ etc \ lmhosts (не .sam, образец файла)
  2. Добавьте строку «10.0.2.15 chase-ie #PRE»
  3. Запустите "nbtstat -R", чтобы перезагрузить кеш имен Netbios.
  4. Запустите "nbtstat -r", чтобы проверить, что имя кэшировано.

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