URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 101474
[ Назад ]

Исходное сообщение
"Ядро операционной системы стало узким местом при выполнении ..."

Отправлено opennews , 11-Фев-15 22:16 
Оценив влияние различных факторов на время выполнения операций записи и чтения в СУБД Redis, исследователи обнаружили (http://blog.nullspace.io/kernel-latency.html), что основным источником задержек при вводе/выводе является ядро операционной системы. В частности, при выполнении в Linux операций записи 1 Кб данных в однопоточном экземпляре Redis, 84% времени выполнения запроса тратится на выполнение кода внутри ядра Linux, 13% в компонентах взаимодействия с оборудованием и только 3% непосредственно на стороне приложения. При выполнении операций чтения в ядре тратится 62% времени, а в приложении - 20%. При этом, 70% затраченного на выполнения кода ядра времени приходится на компоненты сетевого стека.


Таким образом, производительность Redis во многом упирается в скорость работы сетевого стека. Пытаясь сократить возникающие на уровне ядра задержки, экспериментаторы попытались использовать вместо Linux проект Arrakis (http://www.opennet.me/opennews/art.shtml?num=39829), в рамках которой развивается концепция ОС, минимально влияющей на выполнение приложения. Использование Arrakis позволило сократить задержки операций записи на 81%, а чтение на 65%.

URL: http://blog.nullspace.io/kernel-latency.html
Новость: http://www.opennet.me/opennews/art.shtml?num=41658


Содержание

Сообщения в этом обсуждении
"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Sluggard , 11-Фев-15 22:16 
Ничего, скоро Лёня ядром займётся, или своё запилит. Тогда ребята поймут, что 84% потраченного времени — далеко не предел. =)

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Пропатентный тролль , 11-Фев-15 22:16 
Какой-то маразм. ОС на себя берёт всю тему общения с железом, буферезацию, размещение в (виртуальной!) памяти, следит за страницами, а БД делает write(fd, buf, sizeof(buf)) и ВНЕЗАПНО большинство времени тратится в ОС.

ЭТО ПРОСТО НЕВЕРОЯТНО! Я считаю надо писать докторскую. Или как минимум кандидатскую, ВАК будет довольна.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 11-Фев-15 23:22 
> Какой-то маразм. ОС на себя берёт всю тему общения с железом, буферезацию, размещение в (виртуальной!) памяти, следит за страницами, а БД делает write(fd, buf, sizeof(buf)) и ВНЕЗАПНО большинство времени тратится в ОС.

Таких вещей у "исследователей" не существует. Современный программистик - это функция которая за зарплату дергает методы объектов, пишет на C#, Python, JavaScript и юзерспейсом считает браузер.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 03:55 
> юзерспейсом считает браузер.

Тот аналитик не сильно далеко ушел:


I’m still more or less a complete OS noob, in any event.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Elhana , 15-Фев-15 13:27 
Он не аналитик, он данные берет из статьи: https://www.usenix.org/system/files/conference/osdi14/osdi14..., где умные дяди пиарят свою исследовательскую ОС.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 15:34 
Ты имел ввиду Java, С#, JavaScript?

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 16:04 
>Ты имел ввиду Java, С#, JavaScript?

семейство Python,C#,Java,JavaScript,VB,VBScript,...


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 16:23 
Java, C#, JavaScript, PHP, Swift?

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 13-Фев-15 12:27 
Не, ява он знает, а все перечисленные нет.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Crazy Alex , 12-Фев-15 00:28 
И тем не менее запросто может оказаться, что для данного конкретного случая ядро работает неоптимально. Причем виновата может быть любая сторона - как юзерспейс, неудачно работающий с интерфейсами ядра, так и само ядро. А может, там вообще пересборкой с другим конфигом можно обойтись. Как ни крути - локализация проблемного участка - это половина пути к решению проблемы.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Какаянахренразница , 12-Фев-15 05:13 
> запросто может оказаться, что для данного конкретного случая ядро работает неоптимально

Ядро работает не оптимально для любого (!) конкретного случая. Ибо оптимизировать под один случай означает запороться во всех остальных.

Пример. Каждый человек может сказать что-то типа "я не властелин вселенной, а все остальные не мои рабы, значит для моего конкретного случая общественный строй неоптимальный". И ведь будет прав, ибо общественный строй, условно говоря, оптимизирован для всего общества. Вот и ядро оптимизировано только для типового набора процессов и железа (для общего случая), но не для какого-то одного процесса.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 08:19 
Оптимальнее всего - захардкодить частный случай в ASIC. Вот только проблема: оно совершенно не переконфигурируемо получается...

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено vg. , 12-Фев-15 10:28 
use FPGA, Luke!

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 11:45 
Дорого.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено vg. , 12-Фев-15 17:12 
> Дорого.

https://www.parallella.org/board/


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Неадекват , 12-Фев-15 18:35 
Parallella - это не FPGA.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено oxyum , 13-Фев-15 00:46 
Ну вообще-то там кроме Epiphany стоит и Xylinx Zynq 7010/7020 в которой есть 2 ядра ARM и таки FPGA на 25k/80k. И с ней вполне можно поиграться.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Неадекват , 13-Фев-15 13:08 
> Ну вообще-то там кроме Epiphany стоит и Xylinx Zynq 7010/7020 в которой
> есть 2 ядра ARM и таки FPGA на 25k/80k. И с
> ней вполне можно поиграться.

Для поиграться с FPGA - параллеллы дороговаты, да и в нагрузку дают 16-ядерный меш.
Можно выбрать и дешевле $100 с 200к вентилей

http://www.joelw.id.au/FPGA/CheapFPGADevelopmentBoards


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 12:33 
> use FPGA, Luke!

кстати, да
давно хотел поизучать, посоветуете что-нибудь?


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено an , 12-Фев-15 14:06 
начните с начала

http://www.mike-stirling.com/retro-fpga/zx-spectrum-on-an-fpga/


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено vg. , 12-Фев-15 17:17 
>> use FPGA, Luke!
> кстати, да
> давно хотел поизучать, посоветуете что-нибудь?

http://www.xilinx.com/products/boards-and-kits/device-family...

http://www.buyaltera.com/scripts/partsearch.dll/multisearch?...


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 13:47 
Предлагаю разработать HW+OS специально для этой БД. Потому что второй пункт узких мест это HW. И не пиарить мозг  

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено SubGun , 12-Фев-15 17:59 
Было бы здорово

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Crazy Alex , 12-Фев-15 16:12 
Засуньте свою софистику... подальше. В ядре шесть вагонов оптимизаций для тех или иных юз-кейсов. От различных планировщиков до поддержи разных извращений конкретного железа. Вполне вероятно, что товарищи наскочили на какой-то частный случай, для которого можно добавить поддержку.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Какаянахренразница , 13-Фев-15 05:07 
> В ядре шесть вагонов оптимизаций для тех или
> иных юз-кейсов.

В ядре, которое использовали ребята из этой новости, или в каком-то абстрактном сферическом ядре в вакууме? То-то же. Да, из исходников ядро можно собрать по-разному. Даже свои оптимизации можно добавить. И вообще, можно запилить своё ядро. Но это будет не то ядро, о котором говорится в новости. Софистика? Да ради бога.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Sen , 12-Фев-15 10:31 
Голосую за специализацию ОС, а не за комбайны...

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Crazy Alex , 12-Фев-15 16:14 
А так и есть. Откройте для себя make menuconfig.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено count0krsk , 14-Фев-15 00:36 
Я как-то открывал, и выяснилось что там более-менее всё оптимально и так ))
Это если мыслить не в пределах 1го хоста, использую 1 ось на всех домашних устройствах, поэтому даже выпиливание "ненужных" сегодня драйверов может завтра обернуться гемором.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 13-Фев-15 12:26 
Это еще Стивенс в своих книгах про UNIX API говорил, что писать маленькими блоками неэффективно. Поэтому автор Америки ни для кого не открыл.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено 413 , 11-Фев-15 22:32 
Ну да, пофиг, что в Arrakis практически всё выполняется в пространстве приложения. Главное, что на уровне ядра у них на 81% меньше! Достижение!

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 03:44 
> Главное, что на уровне ядра у них на 81% меньше! Достижение!

Ну так вроде бы и не соврали. Просто сказали не всю правду.

А знаете, в DOS можно вообще отделаться от овертеться от оверхеда на переключение контекстов и не надо ни с кем делить процессорное время. Правда радости с этого что-то мало...


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 08:12 
>> Главное, что на уровне ядра у них на 81% меньше! Достижение!
> Ну так вроде бы и не соврали. Просто сказали не всю правду.
> А знаете, в DOS можно вообще отделаться от овертеться от оверхеда на
> переключение контекстов и не надо ни с кем делить процессорное время.
> Правда радости с этого что-то мало...

Не мало. DOS (а именно FreeDOS) - это лучшая реалтаймовая система из доступных сейчас. С прекрасной обратной совместимостью, прошу заметить. Для определённых задач (не требующх многозадачности и разделения прав доступа) - самое оно.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 08:30 
> Не мало. DOS (а именно FreeDOS) - это лучшая реалтаймовая система из
> доступных сейчас.

Булшит. Эталонный. От овоща застрявшего в 80-х прошлого века.
1) У х86 как такового с реалтаймностью - хреново! Мягко говоря. Ну то что jitter за счет cache hit/cache miss адский - думаю все давно поняли. Но это было бы слишком просто. Поэтому интел сделал SMM. Встанет у тебя какой-нибудь обработчик SMM на секунду в немеряном блобе биоса - и пусть весь мир подождет! Запретить вход в SMM нельзя - это самый привилегированный режим проца, ОС как максимум может лишь пост-фактум заметить что куда-то пропало процессорное время - видимо, кантовались в SMM. Ты как, готов расписаться за всю жизнедеятельность проприетарного биоса своей головой? А гарантии времен отклика возьмешь с традиционного места - с потолка?
2) Ссаный двухбаксовый микроконтроллер по части реалтаймности натянет все это безобразие с огромным отрывом и будет на порядки предсказуемее.
3) Дос "лучший" только для ретардов которые слаще морковки ничего не ели. Более дepьмово сделанной системы - еще поискать. Услуг минимум и они кривые, куча легаси и прочая. Модель памяти? Над ней угорает даже двухбаксовый микроконтроллерный ARM, где и то нынч есть нормальное плоское фоннеймановское 32-битное адресное пространство, без сношания мозга програмеру сегментацией и совершенно левыми ограничениями на ровном месте.

> С прекрасной обратной совместимостью, прошу заметить. Для определённых
> задач (не требующх многозадачности и разделения прав доступа) - самое оно.

При условии что вы безнадежный некрофаг, застрявший в развитии в своих 80-х.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 08:52 
Хе-хе, переход оппонента на личности - дучшее доказательство моей правоты :)

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 12:36 
> Хе-хе, переход оппонента на личности - дучшее доказательство моей правоты :)

Это не так. И своим сообщением вы подтвердили свою глупость.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 13-Фев-15 04:13 
> Хе-хе, переход оппонента на личности - дучшее доказательство моей правоты :)

К сожалению, совсем без перехода на личности очень сложно высказаться об оппоненте, который считает DOS лучшей реалтаймной системой... в 2015 году!


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 13-Фев-15 07:23 
Прочитайте внимательно сначала то, что я написал. Не лучшей _вообще_, а лучшей из _доступных_ и _только_ под определённые задачи. И больше не выдавайте свои фантазии за чужие слова.

Да, и Линукс я тоже использую. Очень интенсивно.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено продавец_кирпичей , 12-Фев-15 13:08 
>[оверквотинг удален]
> с огромным отрывом и будет на порядки предсказуемее.
> 3) Дос "лучший" только для ретардов которые слаще морковки ничего не ели.
> Более дepьмово сделанной системы - еще поискать. Услуг минимум и они
> кривые, куча легаси и прочая. Модель памяти? Над ней угорает даже
> двухбаксовый микроконтроллерный ARM, где и то нынч есть нормальное плоское фоннеймановское
> 32-битное адресное пространство, без сношания мозга програмеру сегментацией и совершенно
> левыми ограничениями на ровном месте.
>> С прекрасной обратной совместимостью, прошу заметить. Для определённых
>> задач (не требующх многозадачности и разделения прав доступа) - самое оно.
> При условии что вы безнадежный некрофаг, застрявший в развитии в своих 80-х.

Истерикой удовлетворен однозначно


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 13-Фев-15 04:14 
> Истерикой удовлетворен однозначно

Удачных вам продаж! :)


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено count0krsk , 14-Фев-15 00:43 
> Истерикой удовлетворен однозначно

[Шепотом]: А сколько дадите за адрес стройки, за которой никто не следит, и где есть 6 этажей кирпичей? ;-)

//Шучу если что, органам правопорядка расслабиться.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено asavah , 11-Фев-15 22:46 
>исследователи обнаружили

иследователи == британские учёные ?


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Andrey Mitrofanov , 11-Фев-15 22:55 
>>исследователи обнаружили
> иследователи == британские учёные ?

Знакомьтесь:

""Computer "scientist" // Alex Clemmer is a computer programmer. Other programmers love Alex, excitedly describing him as "employed here" and "the boss's son". -- http://blog.nullspace.io/

""Alex Clemmer obtained a BS in computer science from a middle-of-the-road state school in 2013. He had an ok-but-not-great GPA. 3 out of 5 officemates agree that Alex has programmed before.

""Alex is currently employed at Microsoft. --http://www.nullspace.io/


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Омский линуксоид , 11-Фев-15 23:15 
Это всё объясняет...

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 03:46 
> Это всё объясняет...

А я то думаю - где же я этот стиль видел, когда вроде бы и не соврали, но сказали не всю правду. А оно "свое, родное" - в смысле, методам научилось прямо там где они и возникли.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено kuku , 11-Фев-15 23:49 
Сначала расстроился, неужели всё так плохо ?
Но потом вспомнил что в TOP500 более 90%
занимает Linux. По моему там объёмы информации
немалые.

Улыбнуло. Недоперезап*сделись...

А моська продолжала тявкать...

А в Microsoft вообще-то молодцы, в плане
подрывной деятельности экосистемы Linux преуспели.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 03:47 
> подрывной деятельности экосистемы Linux преуспели.

Интересные у них подрывы - отгружают свои даунлоады линуксным AKAMAI'ем.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 16:52 
http://nmap.org/book/vscan-examples.html

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 16:26 
90% от этого куска - тупая запускалка приложения. Ребутнулись - потянули по pxe все - запустили - слили.
Этим стоит гордиться ?

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 18:19 
Аракис еще более тупая запускалка приложений, в котором вынесли все что можно в userspace

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено anonym0use , 12-Фев-15 04:46 
> Alex is currently employed at Microsoft. --http://www.nullspace.io/

А еще смотрим в http://www.opennet.me/opennews/art.shtml?num=39829
> Arrakis, являющейся форком исследовательской ОС Barrelfish,

http://www.barrelfish.org/
> operating system being built from scratch and released by ETH Zurich in Switzerland, with assistance from Microsoft Research.

Какое неожиданное совпадение! )


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено 1 , 12-Фев-15 10:53 
Зря ты так ...
Microsoft Research - уважаемая контора.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено count0krsk , 14-Фев-15 00:46 
> Microsoft Research - уважаемая контора.

Кем?


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено анонжжж , 11-Фев-15 23:19 
Это что, история из цикла "я отправил посылку, 80% времени она провела в пути и только 20% в других местах"?

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено kuku , 11-Фев-15 23:54 
:)

a la poste Russe ?


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Капитан , 11-Фев-15 23:20 
redis-kerneld

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено fi , 11-Фев-15 23:26 
a если вместо Arrakis взять ms dos, то 100% будет в режиме приложения :)))

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Прохожий , 11-Фев-15 23:52 
А ведь это и правда очень много. KERNEL значительно выше суммарного времени HW + APP. 80% всего времени уходит на нужды ядра и устройства. Просто фантастика!

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 03:58 
> устройства. Просто фантастика!

Да вообще офигеть - всегда можно найти какой-то краевой случай к которому можно докопаться.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Прохожий , 12-Фев-15 00:00 
Разница в 5 раз! Это недопустимо! Нужны более эффективные алгоритмы. Возможно - механизмы. Самое время "грызть" Кнута с Таненбаумом вместе.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Прохожий , 12-Фев-15 00:08 
Я конечно не семь пядей во лбу, но в моем понимании суммарное время работы KERNEL в идеале не должно превышать HW. Или как минимум меньше HW+APP чтобы не стать тем самым узким местом.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Kamiram , 12-Фев-15 06:46 
Ok. тогда kernel не будет работать с памятью, контекстом, буфферизациями и прочей ненужной фигней.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено VoDA , 12-Фев-15 10:20 
> Ok. тогда kernel не будет работать с памятью, контекстом, буфферизациями и прочей
> ненужной фигней.

Если водитель с машиной на доставку товара тратит времени в 5 раз меньше, чем на обслуживание это же машины в гараже, то что-то не так в консерватории.

Если ускорение от буферизации дает +5% (абстрактно) к производительности, а на обслуживание буферизации тратится -20%, то такая буферизация вредна.

Так что время kernel в пять раз превышающее время app+hw навевает на мысль, что kernel сильно не оптимален.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Andrey Mitrofanov , 12-Фев-15 11:15 
> Если водитель с машиной

Ummm, автомобильные аналогии!

>навевает на мысль, что [CENSORED] сильно не оптимален.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено count0krsk , 14-Фев-15 01:02 
> Так что время kernel в пять раз превышающее время app+hw навевает на
> мысль, что kernel сильно не оптимален.

Только на этой задаче, при непонятных условиях.
Кстати, автор в комментах пишет:

"It is frustrating to hear that you didn't bother reading the article closely enough to realize that I didn't run any experiments. This is a recap of an interesting experiment I found in a research paper."

Т.е. "Я сам ничего не мерял, это перепечатка эксперимента, прочитанного где-то на заборе". Вполне в духе аддиктов Микрософт. "Не читал, но осуждаю" ))
За такое вполне можно было бы подать иск, ибо Клевета в чистом виде - обгаживание репутации продукта.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Капитан , 12-Фев-15 00:12 
Поэтому приложения пилят в виде ядра, пример Mirage OS на языке ocaml
- http://www.openmirage.org/

В общем любое решение BareMetal OS, проще сложного управления в ядре...


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 03:50 
> В общем любое решение BareMetal OS, проще сложного управления в ядре...

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


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Baz , 12-Фев-15 00:19 
блин, если им в СУБД Redis что-то не нравится в ядре Linux никто не запрещает пересобрать его для себя со своими патчами и заткнуться...

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 03:51 
> заткнуться...

Учитывая что чувачок из микрософта - я думаю что линукс он видел на картинке. Ну может быть виртуалочку на хипер-в запустил.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено azure , 12-Фев-15 19:12 
> Ну может быть виртуалочку на хипер-в запустил.

С лету прочиталось как "хипстер-в"


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Baz , 13-Фев-15 09:17 
Фрейд одобряет ))

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 00:20 
А что, лучше было бы, если ядро слепо брало кусок данных из одного места и пихало в другое, без каких-либо проверок?

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Crazy Alex , 12-Фев-15 00:25 
И что за крики? Ну обнаружили узкое место - вот и отлично. Теперь либо товарищам укажут, где именно они косячат, неудачно взаимодействуя с ядром, либо будет хороший кейс, на котором можно покопать и подправить реальные узкие места в ядре. Собственно, так обычно развитие и идёт.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Stax , 12-Фев-15 05:36 
Если бы они хотели исправить, хотя бы вывод perf привели. Ну и сетевые настройки, с которыми получились такие плохие значения (как минимум опции драйвера и ethtool -c, ethtool -k). А то статья написана в духе "в линуксе все так плохо, а вот Arrakis рулит, за ним для наших задач будущее", конкретики - как повторить тест и даже какой-либо подробной информации о том, *где именно* плохо они не привели.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Crazy Alex , 12-Фев-15 16:15 
Ну если не приведут - их забудут за неделю. А вот если приведут - есть шанс поиметь с этого полезные результаты в виде оптимизации кода - хоть ядра, хоть редиса.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Прохожий , 12-Фев-15 00:57 
Все должно аккуратно укладываться в рамки здравого смысла. Результат 5 к 1 - туда явно не вписывается. Значит бред и что то нужно менять. Сомневаюсь, что проблема ограничивается одним лишь Redis. Рекомендую прочитать оригинал и сопутствующие документы.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 01:00 
В комментариях вся суть местных дегенератов. Вместо того, чтоб отнестись к новости разумно, критически, сходить, проверить данные тестов, осмыслить, местная петушня восприняла новость как личное оскорбление, порочащее неприкасаемую святыню, поспешив наклеить всевозможные негативные ярлыки на авторов исследования

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 03:54 
И правда, удивительно: чего это местные посетители критически воспринимают статейки от микрософтовского кекса, у которого самое подходящее описание - "мой папа - босс".

Ну а бонусом - ваш комент вообще образец культуры и терпимости, чего уж. НеПетyшня, блин, проприерасовская. Ус у вас отклеился.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Прохожий , 12-Фев-15 01:08 
Конечно можно создать ОС с кучей всяких "нужных" проверок которые так или иначе повысят ее безопасность, но сделают ее крайне медленной. Кому она после этого будет нужна? Важен баланс, а если его не удается достичь - другой механизм который обладает нужными эксплуатационными характеристиками. Не все такие как Кнут или Таненбаум, поэтому ядром должны заниматься "избранные" и обязательно математики. Любая предполагаемая реализация должна пройти математический анализ. Время, когда каждый может что то написать "на коленке" - прошло. Только специалист высшего класса осилит все это. Дорогой специалист. Каждый должен заниматься своим делом. Не в обиду другим.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 11:50 
> поэтому ядром должны заниматься "избранные" и обязательно математики

Отличный рецепт эпик фейла.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 02:20 
Помнится, в середине 90-х игроделы не писали игр под винду, потому что у нее были больщие накладные расходы по сравнени с DOS. Товарищам из редис тоже могут перейти на FreeDOS какой-нибудь :)

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Kamiram , 12-Фев-15 06:49 
кстати в DOS можно накладные ресурсы ОС вывести в 0. притом вполне штатно.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 07:59 
> кстати в DOS можно накладные ресурсы ОС вывести в 0. притом вполне штатно.

Можно. Но почему-то желающих пользоваться DOS нынче мало. Еще можно программу на чистом асме написать. Если программа мелкая - будет круто. А если не очень - будет жутко.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 03:10 
ох ребятки, для начало нужно знать что за сетевые карточки они юзали.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 03:57 
> ох ребятки, для начало нужно знать что за сетевые карточки они юзали.

Не очень принципиально, когда 84% в коде в EXT4 :)


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Crazy Alex , 12-Фев-15 04:09 
Цитата из новости: "При этом, 70% затраченного на выполнения кода ядра времени приходится на компоненты сетевого стека".

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено None , 12-Фев-15 09:30 
> Цитата из новости: "При этом, 70% затраченного на выполнения кода ядра времени
> приходится на компоненты сетевого стека".

Ну так EXT4 и расшифравывается как Enterprise eXtandable TCP v 4


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 13-Фев-15 04:18 
> Цитата из новости:

Ять, вот обезьяны, 84% взяты с диаграммы на сайте. Я конечно понимаю что ссылки никто не клацает..


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Прохожий , 12-Фев-15 03:27 
Intel x520 10G NIC

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено anonym0use , 12-Фев-15 05:54 
Провел свое собственное исследование. Взял за основу рабочий код!

#include <stdio.h>
int main(void)
{
    for (int i = 0; i < 3000000;i++) {
        putchar('0');
        fflush(stdout);
    }
    return 0;
}

Обнаружил, что 87% времени выполнения тратится на выполнение кода внутри ядра!
gcc49 -O2 -std=c99 -Wall test.c 
$ time ./a.out > /dev/null

real    0m1.173s
user    0m0.142s
sys     0m1.030s


Долго думал, решил убрать fflush и проверить еще раз -- НЕВЕРОЯТНО, но это позволило сократить задержку записи в ядре в 114 раз!!
$ time ./a.out > /dev/null 
real    0m0.019s
user    0m0.010s
sys     0m0.009s


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 07:12 
хороший пример. Анонимус одобряет

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 08:00 
> это позволило сократить задержку записи в ядре в 114 раз!!

Теперь я понимаю как ты получаешь квартальную премию :)


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Прохожий , 12-Фев-15 11:13 
Какое отношение ваш пример имеет к сетевому стеку Linux? В оригинале статьи было четко указано, что 70% времени всего времени было потрачено на сетевую подсистему. Вы явно не читали.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Andrey Mitrofanov , 12-Фев-15 11:17 
Не мешай исследованию! Человек почти диссертацию написал же. </>

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено anonym0use , 12-Фев-15 15:25 
> Какое отношение ваш пример имеет к сетевому стеку Linux?

Мне было влом делать пример с сетью?  =)

Принцип ведь тот же -- толком неизвестно, где и почему задержка. Возможно не очень оптимальный код редиса, возможно ядра или конкретно конфигов для тестированного железа. Возможно эта "неоптимальность" необходима в продакшене (как например sync-и/всякие barrier-ы в ФС, хотя без них в бенчах все работает в несколько раз быстрее) а тесты с арракисом -- работают отлично только на сферических железяках.

> Вы явно не читали.

Было бы что читать -- "мы протестировали редис и оказалось что ядро дает задержку в х%!"
А что, как, с какими конфигами, как повторить -- это ведь на самом деле не важно, да :)


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 13-Фев-15 00:34 
Почему то напомнило эту новость http://www.opennet.me/opennews/art.shtml?num=31211

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 13-Фев-15 04:19 
> Почему то напомнило эту новость http://www.opennet.me/opennews/art.shtml?num=31211

Да они контрибутят только крап для своего же hyper-v. Не хотят, понимаешь, в их облаке маздайкой пользоваться. Цены на лицензии и потребление ресурсов виндой делает сервера на них в разы дороже линуксных.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 13-Фев-15 09:40 
Я не поэтому вспомнил, а потому что как показано в новости одно и тоже (коммиты) можно посчитать по разному и получить совершенно разные результаты.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 06:54 
используйте MariaDB

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 07:12 
Используйте Mozilla Firefox.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 08:02 
> Используйте Mozilla Firefox.

Эйрбасы прикольнее. Но правда дороже.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено count0krsk , 14-Фев-15 01:12 
> Используйте Mozilla Firefox.

fix: Icecat


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 07:10 
Ждем измерений на freebsd

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 08:01 
> Ждем измерений на freebsd

Ога, на ZFS. Чтобы батхерт был пожестче.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 08:50 
Редис хранит все в памяти, так что zfs тут вообще не к месту.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено count0krsk , 14-Фев-15 01:14 
> Редис хранит все в памяти, так что zfs тут вообще не к
> месту.

И тут-то можно привести тест Вычитки в память всей базы, при запуске. И сравнить.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено вася , 12-Фев-15 07:56 
А ничего что redis при всем своем крутом api однопоточный?

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 08:53 
> А ничего что redis при всем своем крутом api однопоточный?

API там не крутой, а простой как 2 копейки. Однопоточность не смущает.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 10:20 
Простой API это memcached.
Однопоточность не смущает только тех кому плевать на скорость.

"Ядро операционной системы стало узким местом при..."
Отправлено arisu , 13-Фев-15 01:00 
> Простой API это memcached.
> Однопоточность не смущает только тех кому плевать на скорость.

lighttpd и ngnix рыдают в углу.


"Ядро операционной системы стало узким местом при..."
Отправлено Аноним , 16-Фев-15 12:51 
>lighttpd и ngnix рыдают в углу.

дядя ты хочешь сказать что nginx однопоточный? Ты каких грубов поел?


"Ядро операционной системы стало узким местом при..."
Отправлено arisu , 16-Фев-15 17:41 
кретинов я к обсуждению не приглашал. брысь.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 08:33 
Плохому танцору сапоги мешают

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 08:49 
Чтой-то я по ссылке не увидел, а какая же итоговая пропускная способность этой Redis под Linux и Arrakis.

А вот это меня особенно повеселило "проект Arrakis, в рамках которой развивается концепция ОС, минимально влияющей на выполнение приложения".


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено EuPhobos , 12-Фев-15 09:03 
> При этом, 70% затраченного на выполнения кода ядра времени приходится на компоненты сетевого стека.

Смешно читать такое от сотрудника Макрасофта, при том, что в винде сетевой стек работает гораздо медленнее.
Типичная американская выходка и мышление: "У нас всё плохо с сетью.. Что же делать? А давай скажем, что У НИХ всё плохо с сетью, и на нас меньше думать будут? А давай! В общем мы тут исследовали вашу Линукс и поняли что ... ... "


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено freehck , 14-Фев-15 02:01 
Если бы всё было так просто... Мелкософт уже не конкурент, и большинству это очевидно. Тут, скорее всего, лишняя рекламация проекта Arrakis. Это ведь концепция ядра, написанная под лицензией MIT.

Вы заметили, как модно стало переписывать то, что уже реализовано в рамках GNU-лицензий, под не копилефт лецензиями? LLVM был только началом. Вот теперь сюда Arrakis можно присовокупить.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено badmilkman , 12-Фев-15 09:38 
Если в программе очень мало собственной логики, а вся работа выполняется на уровне OS - вполне нормальные цифры.
А еще и взаимодействие с OS организовано не оптимальным образом...

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Andrey Mitrofanov , 12-Фев-15 09:58 
> А еще и взаимодействие с OS организовано не оптимальным образом...

Тише-тише!! А то ж кто-нибудь услышит!? И не дай б. подумает, что высокопроизводительный бенчмарк высокопроизводительного сервера в высокоинтеллектуальном бложике высокообразованного сыночка босса в майкрософтах -- не использовал асинхронные сетевые api. </>


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 10:42 
не зря ORACLE ASM предлагает

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Andrey Mitrofanov , 12-Фев-15 11:11 
> не зря ORACLE ASM предлагает

недаром и неспроста, да.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено tensor , 12-Фев-15 10:58 
К чёрту ненужные слои абстракции! DB2 for Z-OS - в массы!

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Andrey Mitrofanov , 12-Фев-15 11:13 
> К чёрту ненужные слои абстракции! DB2 for Z-OS - в массы!

Сколько ассемблеров выучил ты [в свои годы] ?!

---машинные коды? тумблер-панели? мы же не изверги!?


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено 1 , 12-Фев-15 11:22 
хе ... тумблер панели :-)

А ещё была консольная пишмашинка :-D


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 15-Фев-15 00:38 
> хе ... тумблер панели :-)
> А ещё была консольная пишмашинка :-D

Консул. Ты ее издали видел или реально использовал?


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 15:11 
> позволило сократить задержки операций записи на 81%

Только нечаянно забыли написать общее время.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено count0krsk , 14-Фев-15 01:21 
> Только нечаянно забыли написать общее время.

Дело было не в бобине )))


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено manster , 12-Фев-15 15:34 
> упирается в скорость работы сетевого стека

...без хвостовой рекурсии сложновато идет оптимизация...


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено trdm , 12-Фев-15 16:25 
Да, похоже ядро надо исключить из этих операций. )))
Срочно!
Это ускорит работу )))

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено trdm , 12-Фев-15 16:30 
Вобще смех-смехом, однако иногда и правда стоит делать некоторые оптимизации, к примеру на каждый чих не считыват конфиг сети с диска, а хотя-бы с на минуту его закешировать где-нить в памяти.
Я встречал на форточках, при мониторинге активности - винда постоянно тыкается в реестр, что-бы прочитать данные по текущей теме оформления или каких=нибудь настройках.
Есть такая проблема, хотя в (0) она изложена пренебрежительно и неаккуратно.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Прохожий , 13-Фев-15 01:23 
В случае Windows - это нормально. Весь реестр всегда хранится в оперативной памяти. Не вижу смысла тут что либо оптимизировать.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 13-Фев-15 09:44 
> В случае Windows - это нормально. Весь реестр всегда хранится в оперативной
> памяти. Не вижу смысла тут что либо оптимизировать.

А в случае линукса файловый кэш во все поля.

Только представьте что память начала кончатся, и файловый кэш дропнули, а вам реестр в винде в файл подкачки уехал.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Прохожий , 13-Фев-15 18:58 
Вы плохо знакомы с архитектурой Windows. Не стоит допускать острой нехватки памяти. В этом случае, навряд ли можно в чем то винить OS.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено count0krsk , 14-Фев-15 01:24 
> Вы плохо знакомы с архитектурой Windows. Не стоит допускать острой нехватки памяти.
> В этом случае, навряд ли можно в чем то винить OS.

Зато хорошо знакомы с Microsoft SQL Server, у которого память "утекает" со временем, и надо делать рестарт службы руками. В это время все кассовые терминалы, и прочие юзеры курят и ждут, ждут, ждут....

В линуксе даже на случай "Замуровали, демоны!" есть Alt+Shift+SysRq.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 12-Фев-15 18:57 
Без размещения базы данных на внешнем usb-накопителе эксперимент неполон.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено none7 , 12-Фев-15 20:14 
И чего же тут удивительного? Если операция не особо сложнее доступа к массиву и занимает менее сотни тактов процессора, то даже копирование результата может занять времени больше чем поиск значения.
Конечно можно не сомневаться, что сетевой стек избыточен, ОС должна упаковать данные в пакет, посчитать чексуммы, прогнать через несколько слоёв фильтрации, пройтись по таблице маршрутизации, сообщить сетевой карте о необходимости передать пакет. Redis мог бы урезать пару из этих операций, будь он подключен непосредственно к драйверу сетевой карты.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Нанобот , 13-Фев-15 09:47 
Плохому программисту ядра мешают

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено cmp , 13-Фев-15 16:46 
Ага, щас запилят свою ось, потом фс к ней приделают, потом драйвера, потом еще дыры латать пяток лет будут, а потом окажется, что получись тоже самое только кривое и не совместимое.

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено count0krsk , 14-Фев-15 01:32 
> Ага, щас запилят свою ось, потом фс к ней приделают, потом драйвера,
> потом еще дыры латать пяток лет будут, а потом окажется, что
> получись тоже самое только кривое и не совместимое.

Зато теплое, ламповое, своё!
И клиентура уже сложилась. Вовлечь юзера в тестирование своей продукции, чтобы он чувствовал, что в хорошей ОС есть и капелька его победы - лучше, чем сразу выкатить годный продукт. Всё равно ведь придерутся.


"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 16-Фев-15 03:20 
Шах, и мат, любители монолитных ядер... ;-)

"Ядро операционной системы стало узким местом при выполнении ..."
Отправлено Аноним , 16-Фев-15 03:32 
Кстати наводит на мысли о закате эры многозадачности. Главная функция современной ОС - планировщик многозадачности, все остальные функции (графическое окружение, файловая система) в существенной степени самостоятельные сервисы, хотя рядовой пользователь этого и не осознаёт. В наше время наблюдается тенденция о замене многозадачных железных серверов виртуальными машинами, на которые воскладывается ровно одна задача (гонять тот же Редис, например) (пользователи Docker уже приучаются даже SSH вторым сервисом не использлвать) а единственной функцией железа становится быть хостами для виртуальных машин. В результате очень много кода становится лишним. По идее можно ожидать появления ОС без ФС (зачем она, если для множества задач, включая СУБД и статику удобнее напрямую адресовать рабочую область диска и не нужно распределять права доступа на уровне ФС), без пользовательской оболочки и с сильно упрощённым планировщиком (без процессов - только потоки).

"Ядро операционной системы стало узким местом при..."
Отправлено arisu , 16-Фев-15 03:37 
я очень тебя разочарую, если скажу, что такие ОС давным-давно есть? да-да, те самые «бесполезные микроядерные игрушки».