12309

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску

Bug 12309 — долгоиграющий дефект в ядрах этих ваших Линухов, бич пользователей Линукса на десктопе и эпичное проявление потреблядства разработчиков ядра. Серьёзные тормоза при операциях ввода/вывода, особенно если это своп. То возникает, то пррявляется — каждое новое выходящее ядро вроде как исправляет #12309, но окончательное решение проблемы так и не приходит. Хотя, по мнению анонимуса, эту полезную фичу переносят с любовью и заботой в свежее ядро. Может использоваться для троллинга начинающих красноглазиков. Довольно трудно объяснить новичку, почему на его двухъядерном компе с 4 гигами памяти в этих самых окнах все летало, а в линупсе копирование с флэшки вызывает тормоза курсора на экране.

С 9 июня 2012 года [ядро 3.3] считается починенным, но никто не верит. С 19 февраля 2017-го [ядро 4.10] починили окончательно. Ну да, конечно. По состоянию на 2019 год на ядре 5.10 и выше всё по-прежнему.

Как вызвать[править]

  • Ставим новое ядро;
  • Забиваем всю память программами;
  • Начинаем копировать свою любимую порнуху с флешки на жёсткий диск (или обратно).

В тяжёлых случаях систему придётся перезагружать.

Вообще, в случае наличия бага, забивание всей памяти необязательно. Главное — активизировать операции ввода-вывода. Например, при запущенном торрент-клиенте (с несколькими активно работающими закачками/раздачами) начать копирование файлов (лучше с физически разных устройств), после чего можно насладиться периодически подвисающим браузером/почтовым клиентом, даже если вы просто читаете текст с экрана. Правда, повесить всю систему намертво таким способом не получится. Забивание же всей памяти дополнительно активизирует подкачку и внесет свою долю хаоса.

Как бороться закрыть глаза, чтобы не видеть[править]

  • Скрасноглазить принципиально новое ядро;
  • напихать памяти >128 GiB и отключить overcommit (когда программа запрашивает память, ей выдаётся в расчёте на то, что всю память сразу она использовать не будет, и что нужна ей не память, а адресное пространство; если же программа ВНЕЗАПНО начинает использовать память, то приходится свопить, и если делать это недостаточно рационально (не учитывая временную, пространственную локальность, степень модификации данных и не оптимизируя раскладку памяти во время исполнения программы на основе модели из предыстории), то будут лютые тормоза, так ОС на каждый чих будет гонять неиспользованные данные туда-сюда-обратно (при обращении программы к объектам в разных буферах, выделенных в динамческой памяти, что случается в ООП сплошь и рядом); отключение оверкоммита приводит к тому, что, если процессу требуется виртуальной памяти больше, чем возможно ему выделить физической, то память не выделяется, что приводит к невозможности вышеуказанной ситуации в рамках процесса); при меньшем количестве памяти при наличии запущенных жрущих программ программы перестанут стартовать и/или будут падать, ибо memory exhausted.
  • Сменить планировщик ввода/вывода на BFQ, начиная с ядра linux 4.12 он уже встроен, нужно только включить);
  • Ограничить dirty_bytes каким-нибудь разумным значением:
 vm.dirty_background_bytes = 2097152
 vm.dirty_bytes = 2097152
  • На многоядернике — перевесить прерывания на одно ядро:
 for interruption in `grep usb /proc/interrupts | awk '{print $1}'| sed 's/\://g'` ; do  
   echo 1 > /proc/irq/${interruption}/smp_affinity;
 done

Шаманство[править]

Существует, однако, 100% способ избавиться от этой полезной фичи под номером 12309. Состоит он в том, что надо:

  • Выкинуть все свистоперделки из системы,
  • Поставить 100 Hz таймер ядра и No Forced Preemption (Server) mode,
  • Оставить обычный системный планировщик i/o,
  • Врубить всему юзерспейсу приоритет ionice пониже (2, лучше 3), а ядру повыше (1 — real time)
  • Никаких экспериментальных reiser4,
  • Накатить ядро с патчами для реализации жёсткого режима реального времени (linux-rt, есть в стандартных репозиториях большинства дистрибутивов).
  • При копировании не врубать высокий приоритет этому приложению или выкинуть этот грёбаный дистрибутив, где по дефолту этому ставится высокий priority.
  • Можно откатиться на старое ядро многолетней давности. Например 2.6.18 сбою не подвержен, а команда разработчиков энтерпрайзного RHEL бэкпортирует в него некоторые фичи и драйверы из новых версий ядер.

На самом деле[править]

На самом деле это ряд дефектов с разными причинами, способами решения и последствиями, выражающимися просто: «тормозит!».

Есть мнение, что при забивании всей памяти программами и попытке копировать большие объёмы в других операционных системах, они просто упадут с вероятностью 2:1 без возможности реанимации. Тогда как красноглазикОС полежит немного, протрезвеет, проблюётся свопом, встанет и пойдёт дальше.

В планировщике BsodOS есть фича: по умолчанию процесс, с окном которого в данный момент работает пользователь, получает больший объем процессорного времени, чем остальные процессы с таким же приоритетом. Этот же процесс с определенной частотой гарантированно получает внеочередной доступ к процессору и операциям ввода-вывода, даже если они в это время по горло завалены запросами других процессов. Как результат — с точки зрения пользователя тормоза меньше.

Примечание: ФриБСДя и Солярка проблемой 12309 по причине high I/O, в отличие от Ляликса, не страдают. Однако засрать память можно даже человеку.

Ссылки[править]

App.png Весьма полезная вещь, позволяет машинам работать с помощью коммандычей
МетаПрограммаDRM (SecuROMStarForceАналоговая дыра) • БагБот (Автоответчик) • Варез (Repack) • ГлюкГуйДонатКопирайт (By design) • ЛогНюкРут (Не работай под рутом) • Спортивное программированиеМегапиксельКомпьютерВерсия 2.0КодОбфускацияСкриншотДатамайнПлагинТекстовый файлБольшие данныеАльфа и бета-тестыТаймстампКэшШаблоныHello WorldНейросетиФайлИнсталляция
ФичиБагрепорт12309BSODCookiesEmbrace, extend and extinguishFL StudioSheep.exeWinlogon.exeБубенЗащита от дуракаКостыльМашинный переводПасхальные яйцаСвистелки и перделкиСм. рис. 1Съешь ещё этих мягких французских булокTermuxGNU MetroИндусский кодНескучные обои • Сжатие (За сжатие ДжипегаШакалШкала) • Работает — не трогайРандомайзерPDF (Распознавание PDF) • Дело Google в ФАСЧат-ботXMLМакросКритическая ошибка
ВредоносноеБотнетБрутфорсВинлокЗвонилкаКитайские пингвиныПиксель смертиТроянЧервь МоррисаBonziBuddyMediaGetBrowser hijackingTinderМиссис МажорУтечка буфера обмена
КомпанииApple / Apple (AppleScript) • GoogleMicrosoftSAPЯндекс
Движения8-bitOpen source (КрасноглазикиЛинуксоиды) • Вирусная сценаДаунгрейдДемосценаМоддингMMD
Офис3DS MAXGIMPGNU EmacsMovie MakerMS Paint • OpenOffice • PowerPointviMicrosoft WordExcelБлокнотФотошопАнтивирус КасперскогоAvast!TikZShareXAlternativeToСкрепышMicrosoft OfficeТекстовый редакторWeChatZoomДиспетчер задачMicrosoft Cortana
ОСAndroidBSDDOSMenuetOSReactOSWindows (Phone 7Phone 878Vista) / МаздайЛинуксРусская ОСФантом ОС
БраузерыInternet ExplorerОпера / Opera • Тормозилла (ОгнелисLolifoxMozilla FirefoxFirefoxFirefox Klar) • Хром (шпионаж) • SafariЯндекс.БраузерУведомления в браузереVivaldiTor-браузер
ИнтернетAdobe Systems (Flash) • I2PLow Orbit Ion CannonTorTunatic • Чат−клиенты (MirandaQIPSkypeЖабберDiscordVIPole) • HTTPSПрокси-сервер (Proxifier) • Торрент (Magnet-ссылкаΜTorrent) • JavaScriptCSSHTMLБаннермейкерИзменение TTL сетевых пакетовКапчаICQFiddlerViberZonaSteamSillyTavernWickr Me
РазработкаBrainFuckCC++C#JavaHaskellАссемблерChaos ConstructionsBATMySQLGitHubAutoHotKey (AutoHotInterception) • Sublime TextAPK (APKPureзапрет) • BASICPerlPythonPHPФоркUnity3DSAISIPСАПРФлаг
ЛюдиВеб-мастерLovinGODБалмерГейтсГенерал ФейлорДжобсМитникПоттерингде РаадтСпольскиСтоллманТорвальдсШахиджанянAche666Марк ЦукербергЕвгений ПоповДенис КумпонМассовая компьютерная безграмотность
КостылиCygwin • PunkBusterT9WineWishmasterАнтивирусыХакинтошСборки WindowsDenuvoЧистая установкаКалькулятор Consul WarMicrosoft StoreUBlock OriginLightshotAdBlockSearchApp.exeCPU-Z
Команды^H^WAlt+F4Ctrl+Alt+Delman/me/quitrm -rf
Pi image.png Смысл большой в числах — они сильны и велики
Числа и цифры+11.02.0π3,53,628/641314/88161920252834384042515763778086101121128220228265282314322359404410502640646666111111381200+ε133715001812200023003310360537309000/~96001230940 00010050026060213 000 0001 000 000 000 (СталинскийЗолотой) • 1 208 925 819 614 629 174 706 176G64144 00024:00
Проценты90% женщин95% населения (95 простых процентов) • Инфа 100%146%
Время3 секунды5 секундПолшестого7:4010:101917 год1980-е (1984 год) • 1990-е2000-е (2000 год) • 2010-е (2012 год)
Прочее1 Guy 1 Jar2 Girls 1 CupSweet home2 в 13 Guys 1 Hammer58 видов геевАвтомобильные номераГетДЕЕ1991ГРДеление на нольЗакон ПаретоКодМатанМатановая капчаНатуральные числаПростые числаВещественные числаРулеткаСотни нефтиВеликая теорема ФермаТеория относительностиЧуть более, чем наполовинуСемь чудес светаКвадратура кругаТри обезьяныДевушка и пять негров (Piper Perri Surrounded) • Проклятие 7Два срокаDota 25.11.17Дока 2Несчастливые числаСчастливые числа
Lor opacity.png Обитель ОС-петушелл
Людиalphex_kaanoken • GeneratorglukoffGuttaLinuxJBK48KominternShaman007SherakSikonSilvyАлексей БабушкинАнонимус • Батарейкин • ВилфредГанс РейзерГрегореДенис ПоповЛуговскийМихаилПатрикСанычТео де РаадтШаман
Мемы128 bitDimmu Borgir - 51kJust for Funlibastral.soTRUE-DEATH-PRIMITIVE-LINUX-MITOLLАнальное рабствоА под Слакой это работает?ВендекапецВеществаДонской табакЖдём ебилдовЗакопайте обратноК логопеду, быдлоЛетающие коровыЛОР-эффектМашина времениМетанацияНе нуженНе работай под рутомНичего не поделаешь, это FlashПерестаньте насиловать труп!Плазма не падаетПрограмма из одной строчки на PerlРешетоСкриншот с ЛОРСпециалисты по всемуТелепаты в отпускеТолько закончил собиратьУбей себя, как ТоммиУМВРШрифты — говноЭлектролит из соплей девственницы
ПрограммированиеArchFedoraGentooGIMPGNOMEJavaKDEPerlSlackware LinuxTeX
Прочее12309Common SenseGNOME vs. KDENixburgАппрувВеликий Исход МодераторовКостыльЛолксЛузирсНытик-тредыТукс