Как стать автором
Обновить

Комментарии 36

очень познавательно, но до сих пор еще не понятно почему все это добро занимает оперативку постоянно

хотела добавить информацию о том, почему каждый из процессов может грузить систему, и почему-то не сделала этого)) добавлю в дальнейшем!

Работает? - Не трожъ!

ну вот как бы да, но вот мне непонятно две вещи: 1) а оно точно работает (и на кого) 2)почему на 7ке мне 4ГБ оперативки норм, а в 10ке 5гигов уже при старте уже занято непонятно чем

И это еще при условии что оно работает. Но лезть то в это приходиться когда все уже поломалось. и все разгребать: то ли антивирус решил удалить библиотеку, то ли вирус проказничает...

наверно, это куча служб на автозапуске. все же, думаю, это проказничает куча экземпляров svchost.exe, потому что в win7 это было более оптимизировано) винда считает, что если много оперативы, можно разгуляться))

тут, кстати, можно об этом почитать https://learn.microsoft.com/ru-ru/windows/application-management/svchost-service-refactoring

очему на 7ке мне 4ГБ оперативки норм, а в 10ке 5гигов уже при старте уже занято непонятно чем

Если память ничем не занята, то, с точки зрения грамотной софтверной арихитектуры, она лишняя и не приносит пользы. Память, вообще говоря, в идеальном случае, должна быть занята вся, хотя бы под кэши. Так что с этой точки зрения "память занята" это очень правильное поведение системы.

Правильное поведение, но только не для многозадачной ОС, где пользователь в любой момент времени может запустить ресурсоёмкое приложение и ОС придётся лихорадочно обрезать кэши и свопить фоновые приложения, с соответствующей задержкой запуска этого приложения.

повторяю вопрос. чем именно занята память? Даже судя по этому описанию куча процессов память занимают не для того что мне нужно, а для чего то своего

повторяю вопрос. чем именно занята память?

Открываете службы и изучаете. Только учтите, что в интернете полно устаревшей информации, например, некоторые до сих пор по привычке советуют отключать SysMain лишь потому, что она когда-то называлась Superfetch и отвечала за префетчинг. В то время как теперь она выполняет множество других задач, например, сжимает страницы памяти.

Ориентируйтесь в первую очередь на документацию Microsoft, пусть её порой и непросто найти.

а занятная ситуация: мало того что название процесса по сути не соответствует действительности, так еще и документацию не сыскать. Простого ответа на вопрос просто нет - тайное знание. Т.е. создана прекрасная среда для недокументированной деятельности, причем на железе, за которое приходится платить свои деньги, в ОС за которую требуют заплатить деньги - и никто не за что не отвечает.

Вы знаете, операционная система очень часто делает "не то что вам нужно", а "что-то свое", да :)
PS. Кэш приложений и будет, например "занимать память каким-то процессом", это так и работает.

Да-да... А потом сидишь и думаешь: почему на машине с 20Гб оперативки внезапно всё наглухо повисло, а индикатор использования свопа упёрся в потолок. А потом оказывается, что при обработке видео система заняла под кэш 18Гб и выдавила в своп всё остальное, пока своп не закончился (монитор показывает, что это именно кэш, а не данные программы). Справедливости ради - под вындой такого не наблюдал. Как отучить это делать линукс - так и не понял.

ulimit?

если в приложении правильно отрабатывают ошибки - вовремя остановится, иначе ядро просто свалит данное приложение в core dump, но т.к. по-умолчанию сейчас это выключено - просто прибьёт заразу.

Вы не очень внимательно прочитали. У приложения (kdenlive, если что) всё нормально. Оно использует, конечно, много памяти, но в целом, на удивление справляется даже на машине с 4Гб оперативки.

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

Я пытался как-то настраивать лимиты, пока не понял, что это не сама прога. В итоге включил себе индикатор заполнения свопа и если он начал заполняться - пора перезапускать ¯\_(ツ)_/¯

кхм, странно, потому что кэш обладает более низким приоритетом чем исполнимые блоки и выгружается быстрее. скорее всего там комплексная проблема.

Вероятно. Мне подобная логика тоже показалась удивительной, однако как это поменять - так и не придумал. В итоге просто добавил оперативки и теперь её хватает на долго :)

Поразительно, но даже названия процессов имеют свой.... как бы назвать... неповторимый набор вызываемых чувств, когда видишь это название. Какие-то ассоциируются с вирусной эпидемией (которые маскировались под svchost, например), какие-то с проблемами переключения раскладки (привет ctfmon, да, и вирусы тоже под него маскировались). Плюс специфичные баги в определённых обстоятельствах вызывают яркие воспоминания (привет, winlogon, зависающий иногда после завершения терминального приложения).

А в целом, очень много хотелось выделить для цитирования и комментирования - но мне что-то стало лень :) В основном хотел кучу ругательств в сторону М$ про то, что "запускаются через n секунд..." - да блин, ещё пару лет назад я из интереса смотрел сколько у меня линукс запускается (спасибо systemd за удобные инструменты) - так без оптимизаций было 6-10сек. А после того как много чего оптимизировал, время старта стало около 3 секунд. И это без nvme, на ssd sata. Да, я прямо после этого мог запустить например браузер и пользоваться.

Работающий в системах Windows, начиная с Windows 8, RuntimeBroker.exe действует как прокси между ограниченными приложениями универсальной платформы Windows (UWP) и набором функций и процедур Windows API. В целях безопасности приложения UWP должны иметь ограниченные возможности взаимодействия с оборудованием, файловой системой и другими процессами, поэтому процессы-брокеры а-ля RuntimeBroker.exe используются для обеспечения требуемого уровня доступа для таких приложений. Обычно для каждого приложения UWP существует один файл RuntimeBroker.exe. Например, запуск сalculator.exe приведет к запуску соответствующего процесса RuntimeBroker.exe.

это вообще ни в какие рамки не лезет - чтобы мне запустить сраный calc.exe, я должен ждать лишние секунды?? Я уж молчу про календарь в десятке - он похоже ещё и в инет куда-то пытается лазить (не смотрел), и отображается только когда пор таймауту видит что нет подключения - буквально секунд 10 проходит. Что может делать простой календарь чтобы отобразить один месяц? Мне например бывает проще свернуть рдп с подключением к рабочему компу с вин10, и на своём глянуть тот же календарь - даже с учётом переключения быстрее получается.

Короче - мастдай. (ладно, вин7 / 2008r2 пусть будут)

После старта я могу полноценно пользоваться системой быстрее, чем отхлебну чай из кружки. Ничего не лагает, не тормозит, чего только не запущено и прекрасно работает в фоне (WSL, виртуалки, СУБД, сервисы, контейнеры россыпью, IDE по несколько штук, отладчики, профайлеры, мониторинг, локальная графана и ELK), да ещё и забываю иногда, что запустил тяжёлую игру и она болтается в фоне.

Но да, винда мастай. Сто пудово! :)

Надо сравнивать в одинаковых конфигурациях (или сходных). А то может у вас проц последнего поколения с десятками ядер и SSD на NVME...
Для каждой задачи свой инструмент, конечно, но я уже не один раз вижу утверждения что в виндах зашиты таймауты, после которых что-то там делается. Не ожидание ответа службы, программы, получения каких-то данных.. нет, тупо отсчёт времени, и идёт дальше. В одной из статей (тут на хабре кстати) было рассмотрено, как винда ведёт себя при ПКМ для отображения какой-то менюшки - там сотни тысяч ненужных циклов, и баг, который (на тот момент) так и не пофиксили. Может и сейчас куча таких багов существуют, просто компы заметно мощнее, и сглаживают это всё. А на самом деле, может всё работало бы и на компах 15-летней давности и летало бы как самолёт.

P.S. вот только недавно столкнулся с интересным явлением - новый комп стартовал (от нажатия на кнопку питания) до полного запуска быстрее чем запускался монитор. То есть стоит комп выключенный, монитор в режиме ожидания, комп запускаем, он включается, уже и музыка прошла, и что там в автозапуске запустилось даже, и спустя секунды 2 монитор начинает показывать изображение. Надо уже учитывать насколько быстрый монитор - может ли он запуститься мгновенно (менее секунды). Да там и скорость всего остального уже влияет - успеет ли подняться сетевое соединение (линк, отработать DHCP, присвоиться IP, и т.д.), сколько будет ответ от DNS, какова скорость интернета и т.д. - а то может скорость старта и вообще не важна, если загрузку любой страницы надо ждать ещё полминуты.
Но вот базовые вещи в работе ОС (для пользователя) - отклик на нажатия клавиш, клики мышкой и т.д. должны быть быстрыми на любом железе, которое считается поддерживаемым, иначе это мучение начинается. Ну и сравнить вин10 и вин7 на одном и том же железе - на вин7 калькулятор мгновенно запускается, на вин10 надо ждать чего-то. Даже notepad.exe и тот ощутимую задержку даёт при запуске в вин10.

Никаких задержек я не наблюдаю. Ни малейших. Нигде. Со всеми задачами ОС справляется изумительно. Ну может я такой неправильный, не лезу в реестр, не лезу в процессы, не занимаюсь оптимизацией, -- без надобности. Поставил винду, она нашла все драйвера, поставил нужный софт и занимаюсь своими задачами. Основная моя деятельность, это разработка серверного ПО для исполнения на Linux (в контейнерах) и немного на Windows Server. Мне максимально комфортно и удобно. Не помню каких-то задач, которые бы я не мог решить.

Ну разве что, потребовалась бы сборка под Xcode, но тут уж ничего не поделаешь, это искусственные ограничения вендора.

Отключите анимации и всё будет быстрее

Даже с выключенной анимацией заметна задержка при клике по часам по сравнению с Windows 8.1.

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

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

А интернет... Так попробуйте запретить интернет в андроиде программам. Внезапно выяснится, что там калькулятор тоже без него жить не может. Отключил все разрешения, какие смог (большую часть даже зарпетить нельзя) - так теперь постоянно шторка забита уведомлениями (которые тоже не отключить) что тому надо интеренет, этому надо...

Десятка постоянно в памяти кэшируется.

Мммм... В какой памяти, если мы про чистую загрузку? Не из гибернации.

Она, вроде, отжирает себе под это дело флэшки, диски ссд. Но я не знаю точно

Так это же хорошо? В перспективе гигабайт диска на ссд все дешевле и дешевле, вот и получается, что кеши программ и префетчи-суперфетчи экономят цпу ценой дешевой памяти.

Да и с точки ззрени потребления электричества, разница между 50% занятой оперативы и 10% отсутствует.

Андроиды то почему такие шустрые, потому что в любой момент времени минимум 50% оперативы занято. Хоть ты убейся и рутуй телефон, все равно, занято будет 50%.

Действительно, проблемы начинаются, когда внезапно для системы открывается что-то, что кушает 60% оперативки и все висит, но тут уже ничего не поделать

Например, запуск сalculator.exe приведет к запуску соответствующего процесса RuntimeBroker.exe.

И что я делаю не так, чтоб ощутить ужас

RuntimeBroker.exe

?

Мне одному глаз режут перлы типа:

Родительский процесс: smss.exe, который завершает работу перед запуском csrss.exe

?

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

Да, грамотнее было бы написать, что процесс завершает работу, запустив другой ) исправлю

В Windows есть алгоритм запуска после завершения процесса. Да тот же Планировщик.

В Windows есть алгоритм запуска после завершения процесса. Да тот же Планировщик.

Автору большой респект! Разжевал всё!
В данный момент прошёл(только что закончил) на HackTheBox раздел Active Directory, понял там так себе, но тут - досконально, вертикально, горизонтально, от А до Я - всё рассказано)

Спасибо!

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории