Комментарии 15
25 лет, стаж работы 10 лет, закончил магистра в 2016 году.
¯\_(ツ)_/¯
¯\_(ツ)_/¯
В школьные годы я админил, благо разбирался с Cisco. Можете погуглить, побеждал в 2010 в олимпиаде по администрированию сетей, проводимой Cisco. Ну и учебу в универе вполне совмещал с фуллтайм работой. Это не так уж и сложно)
В http://lidabelmebel.ru/upload/docs/pdf/HL-book-for-beginners.pdf, написанно:
В правильных веб-серверах даже файлы с дисков от-Это еще что за неизвестная технология такая, телепортация? Как это с дисков в память без загрузки?
даются сразу в память, минуя загрузку (такого эффекта можно достичь, включив, например,
опцию sendfile в nginx).
Видимо опечатка. Похоже имелось ввиду не в память, а в сеть. Тем более, что файлы статики и так, по идее, должны бы быть в памяти (в кэше).
не в память, а в сетьТо есть, с диска, сразу в сетевую карту, не попадая в ОЗУ? А контролер DMA участвует? По какой шине идет эта передача, по PCI express? Какой контролер это контролирует, южный или северный мост?
Я же в предыдущем комменте уже это написал «Тем более, что файлы статики и так, по идее, должны бы быть в памяти (в кэше).» Конечно же загрузка в ОЗУ будет. Не будет вычитывания в userspace.
Так. Перечитал коммент. Еще раз. В книге должно было быть написано не «В правильных веб-серверах даже файлы с дисков отдаются сразу в память, минуя загрузку», а должно, имхо, быть «В правильных веб-серверах даже файлы с дисков отдаются сразу в сеть, минуя загрузку в userspace»
Вам виднее, наверно. Я не в курсе, просто интересно что бы могло означать, вдруг появилась неизвестная мне технология.
Предположу что проблема с userspace в том что происходит переключение контекста CPU. Вряд ли идет копирование из системного RAM в userspace, а работает copy-on-write, то есть копирование буферов файла не происходило бы, а значит проблема не в копировании памяти, а в простое CPU при переключении контекстов.
Но наверное при десятках и сотнях тысяч запросов в секунду, переключение контекста CPU могло бы занимать большой процент простоя производительности железяки.
Предположу что проблема с userspace в том что происходит переключение контекста CPU. Вряд ли идет копирование из системного RAM в userspace, а работает copy-on-write, то есть копирование буферов файла не происходило бы, а значит проблема не в копировании памяти, а в простое CPU при переключении контекстов.
Но наверное при десятках и сотнях тысяч запросов в секунду, переключение контекста CPU могло бы занимать большой процент простоя производительности железяки.
Сорри, изначально воспринял Ваши слова, как троллинг.
Да, Вы правы. Context-switch одна из причин. Но copy-on-write там нет (если и есть, то я об этом не знаю). Идет копирование. sendfile как раз и нужен для zero-copy. Тоесть, при read/send будет идти именно копирование.
Есть еще splice()
Вот ссыль: blog.superpat.com/2010/06/01/zero-copy-in-linux-with-sendfile-and-splice
Хотя zero copy штука такая. С ней очень много мифов. Например, есть очень популярное мнение, что mmap быстрее read/write. Это далеко не всегда верно, о чем даже Линус писал.
Да, Вы правы. Context-switch одна из причин. Но copy-on-write там нет (если и есть, то я об этом не знаю). Идет копирование. sendfile как раз и нужен для zero-copy. Тоесть, при read/send будет идти именно копирование.
Есть еще splice()
Вот ссыль: blog.superpat.com/2010/06/01/zero-copy-in-linux-with-sendfile-and-splice
Хотя zero copy штука такая. С ней очень много мифов. Например, есть очень популярное мнение, что mmap быстрее read/write. Это далеко не всегда верно, о чем даже Линус писал.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Я один не понимаю почему книга по разработке высоконагруженных систем находится на сайте Белорусской мебели? 0_о
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Oh, My Code — новая передача про управление в IT на канале Технострим