The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Ядро операционной системы стало узким местом при выполнении операций в СУБД Redis

11.02.2015 22:12

Оценив влияние различных факторов на время выполнения операций записи и чтения в СУБД Redis, исследователи обнаружили, что основным источником задержек при вводе/выводе является ядро операционной системы. В частности, при выполнении в Linux операций записи 1 Кб данных в однопоточном экземпляре Redis, 84% времени выполнения запроса тратится на выполнение кода внутри ядра Linux, 13% в компонентах взаимодействия с оборудованием и только 3% непосредственно на стороне приложения. При выполнении операций чтения в ядре тратится 62% времени, а в приложении - 20%. При этом, 70% затраченного на выполнения кода ядра времени приходится на компоненты сетевого стека.

Таким образом, производительность Redis во многом упирается в скорость работы сетевого стека. Пытаясь сократить возникающие на уровне ядра задержки, экспериментаторы попытались использовать вместо Linux проект Arrakis, в рамках которой развивается концепция ОС, минимально влияющей на выполнение приложения. Использование Arrakis позволило сократить задержки операций записи на 81%, а чтение на 65%.

  1. Главная ссылка к новости (http://blog.nullspace.io/kerne...)
  2. OpenNews: Представлена новая мультиядерная операционная система Arrakis
  3. OpenNews: Fastsocket - новая высокомасштабируемая реализация сетевой подсистемы ядра Linux
  4. OpenNews: Intel представил сокращённый вариант сетевого стека для Linux
  5. OpenNews: Выпуск БД Redis 2.8
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/41658-redis
Ключевые слова: redis
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (140) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Sluggard (ok), 22:16, 11/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +28 +/
    Ничего, скоро Лёня ядром займётся, или своё запилит. Тогда ребята поймут, что 84% потраченного времени — далеко не предел. =)
     
  • 1.2, Пропатентный тролль (?), 22:16, 11/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +64 +/
    Какой-то маразм. ОС на себя берёт всю тему общения с железом, буферезацию, размещение в (виртуальной!) памяти, следит за страницами, а БД делает write(fd, buf, sizeof(buf)) и ВНЕЗАПНО большинство времени тратится в ОС.

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

     
     
  • 2.10, Аноним (-), 23:22, 11/02/2015 [^] [^^] [^^^] [ответить]  
  • +8 +/
    > Какой-то маразм. ОС на себя берёт всю тему общения с железом, буферезацию, размещение в (виртуальной!) памяти, следит за страницами, а БД делает write(fd, buf, sizeof(buf)) и ВНЕЗАПНО большинство времени тратится в ОС.

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

     
     
  • 3.37, Аноним (-), 03:55, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > юзерспейсом считает браузер.

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



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



     
     
  • 4.144, Elhana (ok), 13:27, 15/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Он не аналитик, он данные берет из статьи: https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-peter_simon где умные дяди пиарят свою исследовательскую ОС.

     
  • 3.91, Аноним (-), 15:34, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты имел ввиду Java, С#, JavaScript?
     
     
  • 4.92, Аноним (-), 16:04, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >Ты имел ввиду Java, С#, JavaScript?

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

     
     
  • 5.96, Аноним (-), 16:23, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Java, C#, JavaScript, PHP, Swift?
     
  • 4.125, Аноним (-), 12:27, 13/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не, ява он знает, а все перечисленные нет.
     
  • 2.22, Crazy Alex (ok), 00:28, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +9 +/
    И тем не менее запросто может оказаться, что для данного конкретного случая ядро работает неоптимально. Причем виновата может быть любая сторона - как юзерспейс, неудачно работающий с интерфейсами ядра, так и само ядро. А может, там вообще пересборкой с другим конфигом можно обойтись. Как ни крути - локализация проблемного участка - это половина пути к решению проблемы.
     
     
  • 3.42, Какаянахренразница (ok), 05:13, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +7 +/
    > запросто может оказаться, что для данного конкретного случая ядро работает неоптимально

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

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

     
     
  • 4.57, Аноним (-), 08:19, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Оптимальнее всего - захардкодить частный случай в ASIC. Вот только проблема: оно совершенно не переконфигурируемо получается...
     
     
  • 5.70, vg. (?), 10:28, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    use FPGA, Luke!
     
     
  • 6.81, Аноним (-), 11:45, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Дорого.
     
     
  • 7.101, vg. (?), 17:12, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Дорого.

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

     
     
  • 8.105, Неадекват (?), 18:35, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Parallella - это не FPGA ... текст свёрнут, показать
     
     
  • 9.110, oxyum (ok), 00:46, 13/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну вообще-то там кроме Epiphany стоит и Xylinx Zynq 7010 7020 в которой есть 2 я... текст свёрнут, показать
     
     
  • 10.126, Неадекват (?), 13:08, 13/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Для поиграться с FPGA - параллеллы дороговаты, да и в нагрузку дают 16-ядерный м... текст свёрнут, показать
     
  • 6.83, Аноним (-), 12:33, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > use FPGA, Luke!

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

     
     
  • 7.87, an (??), 14:06, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    начните с начала

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

     
  • 7.102, vg. (?), 17:17, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >> use FPGA, Luke!
    > кстати, да
    > давно хотел поизучать, посоветуете что-нибудь?

    http://www.xilinx.com/products/boards-and-kits/device-family/nav-spartan-6.ht

    http://www.buyaltera.com/scripts/partsearch.dll/multisearch?site=ALTERA&lang=

     
  • 4.86, Аноним (-), 13:47, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Предлагаю разработать HW+OS специально для этой БД. Потому что второй пункт узких мест это HW. И не пиарить мозг  
     
     
  • 5.103, SubGun (ok), 17:59, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Было бы здорово
     
  • 4.93, Crazy Alex (ok), 16:12, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Засуньте свою софистику... подальше. В ядре шесть вагонов оптимизаций для тех или иных юз-кейсов. От различных планировщиков до поддержи разных извращений конкретного железа. Вполне вероятно, что товарищи наскочили на какой-то частный случай, для которого можно добавить поддержку.
     
     
  • 5.118, Какаянахренразница (ok), 05:07, 13/02/2015 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > В ядре шесть вагонов оптимизаций для тех или
    > иных юз-кейсов.

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

     
  • 3.71, Sen (?), 10:31, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Голосую за специализацию ОС, а не за комбайны...
     
     
  • 4.94, Crazy Alex (ok), 16:14, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А так и есть. Откройте для себя make menuconfig.
     
     
  • 5.130, count0krsk (ok), 00:36, 14/02/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я как-то открывал, и выяснилось что там более-менее всё оптимально и так ))
    Это если мыслить не в пределах 1го хоста, использую 1 ось на всех домашних устройствах, поэтому даже выпиливание "ненужных" сегодня драйверов может завтра обернуться гемором.
     
  • 3.124, Аноним (-), 12:26, 13/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Это еще Стивенс в своих книгах про UNIX API говорил, что писать маленькими блоками неэффективно. Поэтому автор Америки ни для кого не открыл.
     

  • 1.4, 413 (?), 22:32, 11/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Ну да, пофиг, что в Arrakis практически всё выполняется в пространстве приложения. Главное, что на уровне ядра у них на 81% меньше! Достижение!
     
     
  • 2.31, Аноним (-), 03:44, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Главное, что на уровне ядра у них на 81% меньше! Достижение!

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

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

     
     
  • 3.56, Аноним (-), 08:12, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • –11 +/
    >> Главное, что на уровне ядра у них на 81% меньше! Достижение!
    > Ну так вроде бы и не соврали. Просто сказали не всю правду.
    > А знаете, в DOS можно вообще отделаться от овертеться от оверхеда на
    > переключение контекстов и не надо ни с кем делить процессорное время.
    > Правда радости с этого что-то мало...

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

     
     
  • 4.58, Аноним (-), 08:30, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +20 +/
    > Не мало. DOS (а именно FreeDOS) - это лучшая реалтаймовая система из
    > доступных сейчас.

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

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

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

     
     
  • 5.62, Аноним (-), 08:52, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • –21 +/
    Хе-хе, переход оппонента на личности - дучшее доказательство моей правоты :)
     
     
  • 6.84, Аноним (-), 12:36, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > Хе-хе, переход оппонента на личности - дучшее доказательство моей правоты :)

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

     
  • 6.113, Аноним (-), 04:13, 13/02/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Хе-хе, переход оппонента на личности - дучшее доказательство моей правоты :)

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

     
     
  • 7.119, Аноним (-), 07:23, 13/02/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Прочитайте внимательно сначала то, что я написал. Не лучшей _вообще_, а лучшей из _доступных_ и _только_ под определённые задачи. И больше не выдавайте свои фантазии за чужие слова.

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

     
  • 5.85, продавец_кирпичей (?), 13:08, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    gt оверквотинг удален Истерикой удовлетворен однозначно... большой текст свёрнут, показать
     
     
  • 6.114, Аноним (-), 04:14, 13/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Истерикой удовлетворен однозначно

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

     
  • 6.131, count0krsk (ok), 00:43, 14/02/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Истерикой удовлетворен однозначно

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

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

     

  • 1.5, asavah (ok), 22:46, 11/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    >исследователи обнаружили

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

     
     
  • 2.6, Andrey Mitrofanov (?), 22:55, 11/02/2015 [^] [^^] [^^^] [ответить]  
  • +4 +/
    >>исследователи обнаружили
    > иследователи == британские учёные ?

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

    ""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/

     
     
  • 3.7, Омский линуксоид (ok), 23:15, 11/02/2015 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Это всё объясняет...
     
     
  • 4.32, Аноним (-), 03:46, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Это всё объясняет...

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

     
  • 3.12, kuku (ok), 23:49, 11/02/2015 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Сначала расстроился, неужели всё так плохо ?
    Но потом вспомнил что в TOP500 более 90%
    занимает Linux. По моему там объёмы информации
    немалые.

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

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

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

     
     
  • 4.33, Аноним (-), 03:47, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > подрывной деятельности экосистемы Linux преуспели.

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

     
     
  • 5.100, Аноним (-), 16:52, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    http://nmap.org/book/vscan-examples.html
     
  • 4.98, Аноним (-), 16:26, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    90% от этого куска - тупая запускалка приложения. Ребутнулись - потянули по pxe все - запустили - слили.
    Этим стоит гордиться ?
     
     
  • 5.104, Аноним (-), 18:19, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Аракис еще более тупая запускалка приложений, в котором вынесли все что можно в userspace
     
  • 3.41, anonym0use (?), 04:46, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Alex is currently employed at Microsoft. --http://www.nullspace.io/

    А еще смотрим в http://www.opennet.ru/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 [b]Microsoft Research[/b].

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

     
     
  • 4.73, 1 (??), 10:53, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Зря ты так ...
    Microsoft Research - уважаемая контора.
     
     
  • 5.132, count0krsk (ok), 00:46, 14/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Microsoft Research - уважаемая контора.

    Кем?

     

  • 1.8, анонжжж (?), 23:19, 11/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Это что, история из цикла "я отправил посылку, 80% времени она провела в пути и только 20% в других местах"?
     
     
  • 2.14, kuku (ok), 23:54, 11/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    :)

    a la poste Russe ?

     

  • 1.9, Капитан (??), 23:20, 11/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    redis-kerneld
     
  • 1.11, fi (ok), 23:26, 11/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    a если вместо Arrakis взять ms dos, то 100% будет в режиме приложения :)))
     
  • 1.13, Прохожий (??), 23:52, 11/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    А ведь это и правда очень много. KERNEL значительно выше суммарного времени HW + APP. 80% всего времени уходит на нужды ядра и устройства. Просто фантастика!
     
     
  • 2.39, Аноним (-), 03:58, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > устройства. Просто фантастика!

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

     

  • 1.16, Прохожий (??), 00:00, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Разница в 5 раз! Это недопустимо! Нужны более эффективные алгоритмы. Возможно - механизмы. Самое время "грызть" Кнута с Таненбаумом вместе.
     
  • 1.17, Прохожий (??), 00:08, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Я конечно не семь пядей во лбу, но в моем понимании суммарное время работы KERNEL в идеале не должно превышать HW. Или как минимум меньше HW+APP чтобы не стать тем самым узким местом.
     
     
  • 2.45, Kamiram (?), 06:46, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ok. тогда kernel не будет работать с памятью, контекстом, буфферизациями и прочей ненужной фигней.
     
     
  • 3.69, VoDA (ok), 10:20, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Ok. тогда kernel не будет работать с памятью, контекстом, буфферизациями и прочей
    > ненужной фигней.

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

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

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

     
     
  • 4.78, Andrey Mitrofanov (?), 11:15, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Если водитель с машиной

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

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

     
  • 4.133, count0krsk (ok), 01:02, 14/02/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Так что время 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."

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

     

  • 1.18, Капитан (??), 00:12, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Поэтому приложения пилят в виде ядра, пример Mirage OS на языке ocaml
    - http://www.openmirage.org/

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

     
     
  • 2.34, Аноним (-), 03:50, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > В общем любое решение BareMetal OS, проще сложного управления в ядре...

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

     

  • 1.19, Baz (?), 00:19, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    блин, если им в СУБД Redis что-то не нравится в ядре Linux никто не запрещает пересобрать его для себя со своими патчами и заткнуться...
     
     
  • 2.35, Аноним (-), 03:51, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > заткнуться...

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

     
     
  • 3.107, azure (ok), 19:12, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну может быть виртуалочку на хипер-в запустил.

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

     
     
  • 4.120, Baz (?), 09:17, 13/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Фрейд одобряет ))
     

  • 1.20, Аноним (-), 00:20, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    А что, лучше было бы, если ядро слепо брало кусок данных из одного места и пихало в другое, без каких-либо проверок?
     
  • 1.21, Crazy Alex (ok), 00:25, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    И что за крики? Ну обнаружили узкое место - вот и отлично. Теперь либо товарищам укажут, где именно они косячат, неудачно взаимодействуя с ядром, либо будет хороший кейс, на котором можно покопать и подправить реальные узкие места в ядре. Собственно, так обычно развитие и идёт.
     
     
  • 2.43, Stax (ok), 05:36, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если бы они хотели исправить, хотя бы вывод perf привели. Ну и сетевые настройки, с которыми получились такие плохие значения (как минимум опции драйвера и ethtool -c, ethtool -k). А то статья написана в духе "в линуксе все так плохо, а вот Arrakis рулит, за ним для наших задач будущее", конкретики - как повторить тест и даже какой-либо подробной информации о том, *где именно* плохо они не привели.
     
     
  • 3.95, Crazy Alex (ok), 16:15, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну если не приведут - их забудут за неделю. А вот если приведут - есть шанс поиметь с этого полезные результаты в виде оптимизации кода - хоть ядра, хоть редиса.
     

  • 1.24, Прохожий (??), 00:57, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Все должно аккуратно укладываться в рамки здравого смысла. Результат 5 к 1 - туда явно не вписывается. Значит бред и что то нужно менять. Сомневаюсь, что проблема ограничивается одним лишь Redis. Рекомендую прочитать оригинал и сопутствующие документы.
     
  • 1.25, Аноним (-), 01:00, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    В комментариях вся суть местных дегенератов. Вместо того, чтоб отнестись к новости разумно, критически, сходить, проверить данные тестов, осмыслить, местная петушня восприняла новость как личное оскорбление, порочащее неприкасаемую святыню, поспешив наклеить всевозможные негативные ярлыки на авторов исследования
     
     
  • 2.36, Аноним (-), 03:54, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    И правда, удивительно: чего это местные посетители критически воспринимают статейки от микрософтовского кекса, у которого самое подходящее описание - "мой папа - босс".

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

     

  • 1.26, Прохожий (??), 01:08, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Конечно можно создать ОС с кучей всяких "нужных" проверок которые так или иначе повысят ее безопасность, но сделают ее крайне медленной. Кому она после этого будет нужна? Важен баланс, а если его не удается достичь - другой механизм который обладает нужными эксплуатационными характеристиками. Не все такие как Кнут или Таненбаум, поэтому ядром должны заниматься "избранные" и обязательно математики. Любая предполагаемая реализация должна пройти математический анализ. Время, когда каждый может что то написать "на коленке" - прошло. Только специалист высшего класса осилит все это. Дорогой специалист. Каждый должен заниматься своим делом. Не в обиду другим.
     
     
  • 2.82, Аноним (-), 11:50, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > поэтому ядром должны заниматься "избранные" и обязательно математики

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

     

  • 1.27, Аноним (-), 02:20, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Помнится, в середине 90-х игроделы не писали игр под винду, потому что у нее были больщие накладные расходы по сравнени с DOS. Товарищам из редис тоже могут перейти на FreeDOS какой-нибудь :)
     
     
  • 2.46, Kamiram (?), 06:49, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    кстати в DOS можно накладные ресурсы ОС вывести в 0. притом вполне штатно.
     
     
  • 3.52, Аноним (-), 07:59, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > кстати в DOS можно накладные ресурсы ОС вывести в 0. притом вполне штатно.

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

     

  • 1.28, Аноним (-), 03:10, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    ох ребятки, для начало нужно знать что за сетевые карточки они юзали.
     
     
  • 2.38, Аноним (-), 03:57, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > ох ребятки, для начало нужно знать что за сетевые карточки они юзали.

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

     
     
  • 3.40, Crazy Alex (ok), 04:09, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Цитата из новости: "При этом, 70% затраченного на выполнения кода ядра времени приходится на компоненты сетевого стека".
     
     
  • 4.65, None (??), 09:30, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Цитата из новости: "При этом, 70% затраченного на выполнения кода ядра времени
    > приходится на компоненты сетевого стека".

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

     
  • 4.116, Аноним (-), 04:18, 13/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Цитата из новости:

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

     

  • 1.29, Прохожий (??), 03:27, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Intel x520 10G NIC
     
  • 1.44, anonym0use (?), 05:54, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +16 +/
    Провел свое собственное исследование. Взял за основу рабочий код!



    #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


     
     
  • 2.49, Аноним (-), 07:12, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    хороший пример. Анонимус одобряет
     
  • 2.53, Аноним (-), 08:00, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > это позволило сократить задержку записи в ядре в 114 раз!!

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

     
  • 2.76, Прохожий (??), 11:13, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Какое отношение ваш пример имеет к сетевому стеку Linux? В оригинале статьи было четко указано, что 70% времени всего времени было потрачено на сетевую подсистему. Вы явно не читали.
     
     
  • 3.79, Andrey Mitrofanov (?), 11:17, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не мешай исследованию! Человек почти диссертацию написал же. </>
     
  • 3.89, anonym0use (?), 15:25, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Какое отношение ваш пример имеет к сетевому стеку Linux?

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

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

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

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

     
  • 3.109, Аноним (-), 00:34, 13/02/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Почему то напомнило эту новость http://www.opennet.ru/opennews/art.shtml?num=31211
     
     
  • 4.117, Аноним (-), 04:19, 13/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Почему то напомнило эту новость http://www.opennet.ru/opennews/art.shtml?num=31211

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

     
     
  • 5.121, Аноним (-), 09:40, 13/02/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я не поэтому вспомнил, а потому что как показано в новости одно и тоже (коммиты) можно посчитать по разному и получить совершенно разные результаты.
     

  • 1.47, Аноним (-), 06:54, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    используйте MariaDB
     
     
  • 2.50, Аноним (-), 07:12, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Используйте Mozilla Firefox.
     
     
  • 3.55, Аноним (-), 08:02, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Используйте Mozilla Firefox.

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

     
  • 3.134, count0krsk (ok), 01:12, 14/02/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Используйте Mozilla Firefox.

    fix: Icecat

     

  • 1.48, Аноним (-), 07:10, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ждем измерений на freebsd
     
     
  • 2.54, Аноним (-), 08:01, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ждем измерений на freebsd

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

     
     
  • 3.61, Аноним (-), 08:50, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Редис хранит все в памяти, так что zfs тут вообще не к месту.
     
     
  • 4.135, count0krsk (ok), 01:14, 14/02/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Редис хранит все в памяти, так что zfs тут вообще не к
    > месту.

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

     

  • 1.51, вася (??), 07:56, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А ничего что redis при всем своем крутом api однопоточный?
     
     
  • 2.63, Аноним (-), 08:53, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А ничего что redis при всем своем крутом api однопоточный?

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

     
     
  • 3.68, Аноним (-), 10:20, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Простой API это memcached.
    Однопоточность не смущает только тех кому плевать на скорость.
     
     
  • 4.111, arisu (ok), 01:00, 13/02/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Простой API это memcached.
    > Однопоточность не смущает только тех кому плевать на скорость.

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

     
     
  • 5.148, Аноним (-), 12:51, 16/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >lighttpd и ngnix рыдают в углу.

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

     
     
  • 6.149, arisu (ok), 17:41, 16/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    кретинов я к обсуждению не приглашал. брысь.
     

  • 1.59, Аноним (-), 08:33, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Плохому танцору сапоги мешают
     
  • 1.60, Аноним (-), 08:49, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чтой-то я по ссылке не увидел, а какая же итоговая пропускная способность этой Redis под Linux и Arrakis.

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

     
  • 1.64, EuPhobos (ok), 09:03, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    > При этом, 70% затраченного на выполнения кода ядра времени приходится на компоненты сетевого стека.

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

     
     
  • 2.140, freehck (ok), 02:01, 14/02/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если бы всё было так просто... Мелкософт уже не конкурент, и большинству это очевидно. Тут, скорее всего, лишняя рекламация проекта Arrakis. Это ведь концепция ядра, написанная под лицензией MIT.

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

     

  • 1.66, badmilkman (ok), 09:38, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Если в программе очень мало собственной логики, а вся работа выполняется на уровне OS - вполне нормальные цифры.
    А еще и взаимодействие с OS организовано не оптимальным образом...
     
     
  • 2.67, Andrey Mitrofanov (?), 09:58, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > А еще и взаимодействие с OS организовано не оптимальным образом...

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

     

  • 1.72, Аноним (-), 10:42, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    не зря ORACLE ASM предлагает
     
     
  • 2.75, Andrey Mitrofanov (?), 11:11, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > не зря ORACLE ASM предлагает

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

     

  • 1.74, tensor (?), 10:58, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    К чёрту ненужные слои абстракции! DB2 for Z-OS - в массы!
     
     
  • 2.77, Andrey Mitrofanov (?), 11:13, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > К чёрту ненужные слои абстракции! DB2 for Z-OS - в массы!

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

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

     
     
  • 3.80, 1 (??), 11:22, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    хе ... тумблер панели :-)

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

     
     
  • 4.142, Аноним (-), 00:38, 15/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > хе ... тумблер панели :-)
    > А ещё была консольная пишмашинка :-D

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

     

  • 1.88, Аноним (-), 15:11, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > позволило сократить задержки операций записи на 81%

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

     
     
  • 2.137, count0krsk (ok), 01:21, 14/02/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Только нечаянно забыли написать общее время.

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

     

  • 1.90, manster (ok), 15:34, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > упирается в скорость работы сетевого стека

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

     
  • 1.97, trdm (ok), 16:25, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Да, похоже ядро надо исключить из этих операций. )))
    Срочно!
    Это ускорит работу )))
     
     
  • 2.99, trdm (ok), 16:30, 12/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Вобще смех-смехом, однако иногда и правда стоит делать некоторые оптимизации, к примеру на каждый чих не считыват конфиг сети с диска, а хотя-бы с на минуту его закешировать где-нить в памяти.
    Я встречал на форточках, при мониторинге активности - винда постоянно тыкается в реестр, что-бы прочитать данные по текущей теме оформления или каких=нибудь настройках.
    Есть такая проблема, хотя в (0) она изложена пренебрежительно и неаккуратно.
     
     
  • 3.112, Прохожий (??), 01:23, 13/02/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В случае Windows - это нормально. Весь реестр всегда хранится в оперативной памяти. Не вижу смысла тут что либо оптимизировать.
     
     
  • 4.122, Аноним (-), 09:44, 13/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > В случае Windows - это нормально. Весь реестр всегда хранится в оперативной
    > памяти. Не вижу смысла тут что либо оптимизировать.

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

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

     
     
  • 5.128, Прохожий (??), 18:58, 13/02/2015 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Вы плохо знакомы с архитектурой Windows. Не стоит допускать острой нехватки памяти. В этом случае, навряд ли можно в чем то винить OS.
     
     
  • 6.138, count0krsk (ok), 01:24, 14/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Вы плохо знакомы с архитектурой Windows. Не стоит допускать острой нехватки памяти.
    > В этом случае, навряд ли можно в чем то винить OS.

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

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

     

  • 1.106, Аноним (-), 18:57, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Без размещения базы данных на внешнем usb-накопителе эксперимент неполон.
     
  • 1.108, none7 (ok), 20:14, 12/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И чего же тут удивительного? Если операция не особо сложнее доступа к массиву и занимает менее сотни тактов процессора, то даже копирование результата может занять времени больше чем поиск значения.
    Конечно можно не сомневаться, что сетевой стек избыточен, ОС должна упаковать данные в пакет, посчитать чексуммы, прогнать через несколько слоёв фильтрации, пройтись по таблице маршрутизации, сообщить сетевой карте о необходимости передать пакет. Redis мог бы урезать пару из этих операций, будь он подключен непосредственно к драйверу сетевой карты.
     
  • 1.123, Нанобот (ok), 09:47, 13/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Плохому программисту ядра мешают
     
     
  • 2.127, cmp (ok), 16:46, 13/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, щас запилят свою ось, потом фс к ней приделают, потом драйвера, потом еще дыры латать пяток лет будут, а потом окажется, что получись тоже самое только кривое и не совместимое.
     
     
  • 3.139, count0krsk (ok), 01:32, 14/02/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Ага, щас запилят свою ось, потом фс к ней приделают, потом драйвера,
    > потом еще дыры латать пяток лет будут, а потом окажется, что
    > получись тоже самое только кривое и не совместимое.

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

     

  • 1.145, Аноним (-), 03:20, 16/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Шах, и мат, любители монолитных ядер... ;-)
     
  • 1.146, Аноним (-), 03:32, 16/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кстати наводит на мысли о закате эры многозадачности Главная функция современно... большой текст свёрнут, показать
     
     
  • 2.147, arisu (ok), 03:37, 16/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    я очень тебя разочарую, если скажу, что такие ОС давным-давно есть? да-да, те самые «бесполезные микроядерные игрушки».
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру