<br><div class="gmail_extra"><br><br><div class="gmail_quote">17 декабря 2012 г., 11:42 пользователь Oleg Palij <span dir="ltr"><<a href="mailto:o.palij@dp.uz.gov.ua" target="_blank">o.palij@dp.uz.gov.ua</a>></span> написал:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word"><div><div>17 дек. 2012, в 08:40, Вадим Лазовский написал(а):</div>
<div class="im"><blockquote type="cite"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
nginx/1.2.3 стримит видео, упираемся в 1.5 Гб/c (две 1Гб сетевухи в bond) и nginx начинает с задержкой в начале (несколько секунд, иногда до минуты) отдавать файлы, при этом iowait 20-30%, si ~ 20%.</blockquote><div>moov-атом точно перенесен в начала файла? Во всех файлах?</div>
</div></div></blockquote></div>Точно.</div><div><br></div></div></blockquote><div>Вот это место я бы перепроверил. Уж очень подобное поведение похоже на то, что описано в документации:</div><div><br></div><div>"<span style="color:rgb(0,0,0);font-family:Georgia,serif;font-size:medium;text-align:justify">Если файл отформатирован хорошо, с метаданными в начале файла, nginx просто посылает в ответ содержимое файла. В противном случае, он вынужден будет прочитать файл и подготовить новый поток, в котором метаданные предшествуют медийным данным. Это требует дополнительного процессорного времени, памяти и дискового ввода/вывода, поэтому лучше </span><a href="http://flowplayer.org/plugins/streaming/pseudostreaming.html#prepare" style="font-family:Georgia,serif;font-size:medium;text-align:justify">подготовить исходный файл для псевдо-стриминга</a><span style="color:rgb(0,0,0);font-family:Georgia,serif;font-size:medium;text-align:justify">, нежели чем заставлять nginx делать это для каждого запроса.</span>"</div>
<div><br></div><div>Выключите mp4, просто раздавайте файлы без обработки. Будет ли тот же эффект?</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div style="word-wrap:break-word"><div><div class="im"><blockquote type="cite"><div class="gmail_extra"><div class="gmail_quote"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Популярные файлы лежат на ssd, остальное на hdd.</blockquote><div>Сколько всего ssd и обычных дисках. И не в массивах ли они часом?</div></div></div></blockquote></div>1 ssd и 6 hdd в software raid5.</div><div><div class="im">
<br></div></div></div></blockquote><div>В свое время намучились с raid5. Линейное чтение - великолепно, но как только появляется сотня-другая клиентов - начинается затуп.</div><div>С тех пор только отдельные диски или raid10. Чего и вам желаю.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word"><div><div class="im">
<blockquote type="cite"><div class="gmail_extra"><div class="gmail_quote">Без aio отдаем 4 Гбит.</div></div></blockquote></div></div><div>С включенным sendfile? directio для очень больших файлов включен? output_buffers тюнили?</div>
<div><div class="im"><div><br></div></div></div></div></blockquote><div><br></div><div>sendfile включен. Все остальное, кроме "<span style="color:rgb(0,0,0)">timer_resolution 100ms;</span>" по-умолчанию.</div><div>
 </div><div>sysctl.conf:<br></div><div><div>net.ipv4.tcp_tw_recycle = 1</div><div><br></div><div>net.core.wmem_default = 262144</div><div>net.core.wmem_max = 4194304</div><div>net.core.rmem_default = 262144<br></div><div>
net.core.rmem_max = 4194304</div><div>net.ipv4.tcp_rmem = 8192 262144 4194304<br></div><div>net.ipv4.tcp_wmem = 8192 262144 4194304</div></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div style="word-wrap:break-word"><div><div class="im"><blockquote type="cite"><div class="gmail_extra"><div class="gmail_quote">Мб воткнуть третий линк и добавить памяти?.</div></div></blockquote></div>А зачем третий линк, если два не утилизируются полностью? Память, к сожалению, не добавить.</div>
</div><br></blockquote><div>Это на случай, если упирается в прерывания, хотя, кажется, дело не в этом. </div></div></div>