<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki2.linuxformat.ru/skins/common/feed.css?97"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki2.linuxformat.ru/index.php?action=history&amp;feed=atom&amp;title=LXF128%3A%D0%A7%D1%82%D0%BE_%D0%B7%D0%B0_%D1%88%D1%82%D1%83%D0%BA%D0%B0</id>
		<title>LXF128:Что за штука - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki2.linuxformat.ru/index.php?action=history&amp;feed=atom&amp;title=LXF128%3A%D0%A7%D1%82%D0%BE_%D0%B7%D0%B0_%D1%88%D1%82%D1%83%D0%BA%D0%B0"/>
		<link rel="alternate" type="text/html" href="http://wiki2.linuxformat.ru/index.php?title=LXF128:%D0%A7%D1%82%D0%BE_%D0%B7%D0%B0_%D1%88%D1%82%D1%83%D0%BA%D0%B0&amp;action=history"/>
		<updated>2026-05-13T21:15:07Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.11.1</generator>

	<entry>
		<id>http://wiki2.linuxformat.ru/index.php?title=LXF128:%D0%A7%D1%82%D0%BE_%D0%B7%D0%B0_%D1%88%D1%82%D1%83%D0%BA%D0%B0&amp;diff=12906&amp;oldid=prev</id>
		<title>Ewgen: ошибки, категории</title>
		<link rel="alternate" type="text/html" href="http://wiki2.linuxformat.ru/index.php?title=LXF128:%D0%A7%D1%82%D0%BE_%D0%B7%D0%B0_%D1%88%D1%82%D1%83%D0%BA%D0%B0&amp;diff=12906&amp;oldid=prev"/>
				<updated>2011-10-30T13:23:43Z</updated>
		
		<summary type="html">&lt;p&gt;ошибки, категории&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 13:23, 30 октября 2011&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 8:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 8:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;: Нет, финансы – не наш профиль: в данном случае NAPI означает просто «New API». Это технология, позволяющая программистам использовать новую методику управления пакетами на уровне драйверов в высокоскоростных сетях. И она уже встроена в ядро Linux.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;: Нет, финансы – не наш профиль: в данном случае NAPI означает просто «New API». Это технология, позволяющая программистам использовать новую методику управления пакетами на уровне драйверов в высокоскоростных сетях. И она уже встроена в ядро Linux.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* ''Что, и в мое тоже?''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* ''Что, и в мое тоже?''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;: Конечно! NAPI присутствует в ядре, начиная с версии 2.5, но лишь недавно NAPI-совместимые драйверы стали применяться для управления пакетами достаточно широко. Используемые технологии позволили значительно поднять надежность и производительность бесчисленных web-серверов, работающих под Linux: нагрузка на них снизилась, а входящие пакеты &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;обрабатываютсяболее &lt;/del&gt;эффективно.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;: Конечно! NAPI присутствует в ядре, начиная с версии 2.5, но лишь недавно NAPI-совместимые драйверы стали применяться для управления пакетами достаточно широко. Используемые технологии позволили значительно поднять надежность и производительность бесчисленных web-серверов, работающих под Linux: нагрузка на них снизилась, а входящие пакеты &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;обрабатываются более &lt;/ins&gt;эффективно.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* ''Постойте, о каких это «пакетах» вы постоянно говорите?''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* ''Постойте, о каких это «пакетах» вы постоянно говорите?''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;: Пакет – это набор битов, из которых состоит сообщение или его часть. Обычно пакеты включают машинные и пользовательские данные, доставляемые совместно как часть «информационного наполнения». Машинные данные – это сведения об адресах отправителя и получателя плюс код для коррекции ошибок. Пользовательские данные – это собственно информация, пересылаемая по сети из одного места в другое.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;: Пакет – это набор битов, из которых состоит сообщение или его часть. Обычно пакеты включают машинные и пользовательские данные, доставляемые совместно как часть «информационного наполнения». Машинные данные – это сведения об адресах отправителя и получателя плюс код для коррекции ошибок. Пользовательские данные – это собственно информация, пересылаемая по сети из одного места в другое.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 39:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 39:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* ''Вот, оказывается, какая интеллектуальная мощь скрыта в моей Linux-машине! А где бы узнать об этом подробнее?''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* ''Вот, оказывается, какая интеллектуальная мощь скрыта в моей Linux-машине! А где бы узнать об этом подробнее?''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;: Общий обзор и спецификация NAPI содержат ся в сообщении Linux Foundation по адресу http://www.linuxfoundation.org/en/Net:NAPI. Ну, а расхрабрившись, можете почитать электронную книгу http://lwn.net/images/pdf/LDD3/ch17.pdf, чтобы взглянуть на работу NAPI-совместимых драйверов с точки зрения разработчика.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;: Общий обзор и спецификация NAPI содержат ся в сообщении Linux Foundation по адресу http://www.linuxfoundation.org/en/Net:NAPI. Ну, а расхрабрившись, можете почитать электронную книгу http://lwn.net/images/pdf/LDD3/ch17.pdf, чтобы взглянуть на работу NAPI-совместимых драйверов с точки зрения разработчика.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Категория:Что за штука]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Категория:Боб Мосс]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ewgen</name></author>	</entry>

	<entry>
		<id>http://wiki2.linuxformat.ru/index.php?title=LXF128:%D0%A7%D1%82%D0%BE_%D0%B7%D0%B0_%D1%88%D1%82%D1%83%D0%BA%D0%B0&amp;diff=11569&amp;oldid=prev</id>
		<title>Crazy Rebel: викификация, оформление</title>
		<link rel="alternate" type="text/html" href="http://wiki2.linuxformat.ru/index.php?title=LXF128:%D0%A7%D1%82%D0%BE_%D0%B7%D0%B0_%D1%88%D1%82%D1%83%D0%BA%D0%B0&amp;diff=11569&amp;oldid=prev"/>
				<updated>2011-03-25T09:38:30Z</updated>
		
		<summary type="html">&lt;p&gt;викификация, оформление&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая статья&lt;/b&gt;&lt;/p&gt;&lt;div&gt;: '''Что за штука…'''&lt;br /&gt;
&lt;br /&gt;
==Что за штука… NAPI?==&lt;br /&gt;
&lt;br /&gt;
: '''Боб Мосс''' объясняет, почему Linux-ядро становится де-факто стандартом на серверах высокоскоростных сетей.&lt;br /&gt;
&lt;br /&gt;
* ''Эта аббревиатура не имеет отношения к Национальному агентству прямых инвестиций?''&lt;br /&gt;
: Нет, финансы – не наш профиль: в данном случае NAPI означает просто «New API». Это технология, позволяющая программистам использовать новую методику управления пакетами на уровне драйверов в высокоскоростных сетях. И она уже встроена в ядро Linux.&lt;br /&gt;
* ''Что, и в мое тоже?''&lt;br /&gt;
: Конечно! NAPI присутствует в ядре, начиная с версии 2.5, но лишь недавно NAPI-совместимые драйверы стали применяться для управления пакетами достаточно широко. Используемые технологии позволили значительно поднять надежность и производительность бесчисленных web-серверов, работающих под Linux: нагрузка на них снизилась, а входящие пакеты обрабатываютсяболее эффективно.&lt;br /&gt;
* ''Постойте, о каких это «пакетах» вы постоянно говорите?''&lt;br /&gt;
: Пакет – это набор битов, из которых состоит сообщение или его часть. Обычно пакеты включают машинные и пользовательские данные, доставляемые совместно как часть «информационного наполнения». Машинные данные – это сведения об адресах отправителя и получателя плюс код для коррекции ошибок. Пользовательские данные – это собственно информация, пересылаемая по сети из одного места в другое.&lt;br /&gt;
* ''И как ядро Linux обращается с этими пакетами?''&lt;br /&gt;
: Сетевой контроллер каждой машины посылает процессору так называемое «прерывание», который затем передает его ядру: так Linux «узнает» о прибытии пакета. Ядро обрабатывает прерывания поочередно, с учетом назначенных приоритетов.&lt;br /&gt;
* ''И что дальше?''&lt;br /&gt;
: Прежде в ядре использовались буферы фиксированного размера, вмещающие ограниченное количество пакетов. NAPI-совместимые драйверы применяют кольцевой буфер,в котором данные после достижения конца буфера начинают записываться в его начало, замещая собой прежние записи. При отсутствии фиксированного размера буфера вероятность перегрузки сервера входящими пакетами (переполнения буфера) значительно снижается. Уровень безопасности растет, а накладных расходов становится меньше.&lt;br /&gt;
* ''Неплохо. А что еще происходит при переполнении буфера устаревшего типа?''&lt;br /&gt;
: Пакеты, из которых состоит информационное сообщение, отклоняются – а значит, для передачи полного сообщения их придется отправлять повторно. Вдобавок пакеты придется переупорядочить: ведь ядро попытается обработать первым последний пакет. В домашней сети вы даже не заметите повторных запросов или переупорядочения, поскольку трафик там весьма умеренный. А вот для администраторов web-серверов это дело другое!&lt;br /&gt;
* ''А что будет с web-сервером?''&lt;br /&gt;
: Эти машины обрабатывают в тысячи (иногда в миллионы) раз больше запросов, чем средний домашний ПК. В результате множество пакетов отклоняется – замедляется трафик, пользователи не получают требуемый контент, а все компоненты системы страдают от перегрузки. Слишком частые прерывания могут даже привести к исчерпанию запаса физической памяти системы и вызывать лавину ошибок обращения к странице.&lt;br /&gt;
* ''Это, наверное, плохо?''&lt;br /&gt;
: Ошибка обращения к странице возникает, в том числе, при нехватке памяти для процесса, а это дурно влияет на любую систему. Такое явление приводит к «падениям» серверов и называется «конвульсиями» ядра – вещь, крайне нежелательная для любой машины (не говоря уже о web-серверах), поэтому любые меры, сглаживающие этот эффект – весьма полезное дополнение к Linux-ядру.&lt;br /&gt;
* ''А NAPI каким-то образом сдерживает ядро, чтобы оно не «дергалось»?''&lt;br /&gt;
: Это главная цель любой методики, которую NAPI предоставляет разработчикам. Новый API позволяет драйверу тормозить поток входящих пакетов и прекращать отправку запросов на прерывание, чтобы снизить общую нагрузку на систему. Чем меньше общая нагрузка, тем меньше вероятность сбоев ядра, которые мы с вами только что рассмотрели.&lt;br /&gt;
* ''Но ведь торможение пакетов замедлит трафик?''&lt;br /&gt;
: Это не тот случай. Если вы понимаете, что тысячи и даже миллионы пакетов все равно будут отклонены, ядру незачем и браться за их обработку. NAPI-совместимые драйверы отклоняют прием пакетов еще до их передачи сетевому стеку ядра, и нагрузка на систему резко снижается.&lt;br /&gt;
* ''Как же обойтись без отправки запросов на прерывание?''&lt;br /&gt;
: О, это уникальное свойство: NAPI-совместимые драйверы могут отключать прерывания при пиковых нагрузках. Таким образом, ядро не получает их и обрабатывает пакеты по очереди, в нормальной последовательности.&lt;br /&gt;
* ''А разве ядру не обязательно «знать» о прибытии пакетов?''&lt;br /&gt;
: Ядро узнает о пакетах методом опроса NAPI-совместимого драйвера, и это часто повышает эффективность, поскольку отпадает нужда в переупорядочении пакетов. Однако регулярный опрос сетевого контроллера на наличие новых пакетов, вместо того, чтобы уменьшить общие накладные расходы, может увеличить их. &lt;br /&gt;
* ''Какой тогда смысл в опросе?''&lt;br /&gt;
: Видите ли, в этом случае ядро не получает прерываний по прибытии каждого пакета, а обрабатывает пакеты в порядке поступления. Сокращается количество вычислений, связанных с реагированием на новые запросы.&lt;br /&gt;
* ''Но ведь старая проблема — отклонение пакетов — остается?''&lt;br /&gt;
: В режиме опроса NAPI-совместимые драйверы ничего не отклоняют: новые пакеты просто замещают собой старые записи в кольцевом буфере, о котором мы с вами говорили ранее – причем без участия ядра. Повторно запрашивать пакеты все равно приходится, но делать это значительно дешевле, чем обрабатывать каждый пакет – независимо от того, будет он отклонен или нет.&lt;br /&gt;
* ''А отмена прерываний не повлияет на работу системы?''&lt;br /&gt;
: Конечно, повлияет. На некоторых системах прерывания, поступающие от других устройств, могут привести к дополнительным накладным расходам и задержкам, связанным с обработкой этих прерываний. Это называется «повышением латентности» и может привести к тому, что система перестанет реагировать на запросы.&lt;br /&gt;
* ''Но ведь web-серверу так нельзя!''&lt;br /&gt;
: Вы правы: web-сервер создан как раз для ответов на пользовательские запросы, и если он перестанет это делать – пиши пропало. Но обычный web-сервер, как правило, работает только с базовыми компонентами и сетью, так что существенного снижения производитель ности произойти не должно. Важно найти золотую середину между частотой опроса и системными ресурсами, и отключать прерывания только по необходимости. Чем лучше сбалансированы различные методы, тем выше вероятность повышения производительности.&lt;br /&gt;
* ''Вот, оказывается, какая интеллектуальная мощь скрыта в моей Linux-машине! А где бы узнать об этом подробнее?''&lt;br /&gt;
: Общий обзор и спецификация NAPI содержат ся в сообщении Linux Foundation по адресу http://www.linuxfoundation.org/en/Net:NAPI. Ну, а расхрабрившись, можете почитать электронную книгу http://lwn.net/images/pdf/LDD3/ch17.pdf, чтобы взглянуть на работу NAPI-совместимых драйверов с точки зрения разработчика.&lt;/div&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	</feed>