Linux - the Best!

Your Explorer by Linux links...

Денис Колисниченко

Linux Советы

http://www.dkws.org.ua/

Совет №20. Борьба с подвисанием браузера

Иногда бывает, что работаешь безо всяких проблем с любимым браузером несколько часов, а потом с браузером что-то происходит. Как будто бы он «подвис». Некоторым пользователям кажется, что браузер «переработал», они его завершают, а некоторые даже по примеру Microsoft, перезагружают компьютер. Что же на самом деле происходит? В большинстве случаев причина таких зависаний довольно банальна. Просто в коде загружаемой HTML-странички есть ссылки на какой-то объект, например, картинку, который расположен на другом сервере, например:

< img src=http://www.some-server.ru/images/foto.jpg>

Для установки соединения с целью получения файла foto.jpg браузеру необходимо узнать IP-адрес сервера www.some-server.ru. С этой целью он обращается к резолверу. Резолвер – это часть операционной системы, отвечающая за преобразование доменных имен в IP-адреса. Резолвер, в свою очередь, обращается за просьбой к серверу DNS, который указан в файле /etc/resolv.conf. Запрос отправляется к DNS серверу. Но может случиться следующее:

Наиболее часто случаются первые две ситуации. Резолвер будет ждать ответа от сервера определенное время, затем он несколько раз повторит запрос к серверу, а между этими попытками он подождет некоторое время. Посмотрим, что же произошло с сервером. Предположим, что он не может разрешить доменное имя. Он обращается к серверу верхнего уровня с просьбой о помощи. В идеале, сервер ему отвечает, наш сервер получает ответ и отправляет его резолверу. Но с тем вторым сервером может произойти одна из трех вышеприведенных ситуаций, и наш сервер будет ждать ответа. Также ответ будет ждать и резолвер, правда от нашего сервера. Если сервер загружен или временно недоступен (что по большому счету одно и то же), разолвер подождет определенное время, повторит несколько раз запрос и «пойдет» искать счастья (то есть ответа) у другого сервера DNS, указанного при его конфигурации. Понимаете, к чему я веду? На разрешение доменного имени, особенно, если возникла одна из трех описанных выше проблем, нужно определенное время, а пользователю кажется, что браузер завис. А на самом деле он просто ждет ответа от резолвера – именно резолвер должен сообщить браузеру IP-адрес сервера (или сказать, что такого сервера не существует). Как же с этим бороться? Решение заключается в установке кэширующего сервера DNS, который повысит производительность подсистемы разрешения имен вашей ОС. Время ожидания ответа от сервера может сократиться до 30%. Вы сэкономите не только время, но и деньги, ведь все запросы и ответы на них будут в кэше вашего собственного сервера – их не нужно будет пересылать по сети, следовательно, не нужно будет платить за них деньги. Особенно это актуально, если вы платите за количество переданной информации, а не за время работы. О настройке кэширующего сервера вы можете прочитать в Интернете, на сайте http://dkws.narod.ru или в моей книге "Linux-сервер своими руками"