Steam linux грузит процессор

Обновлено: 04.07.2024

Иногда имеем высокую загрузку процессора некими системными задачами.
Не процессами из userland, а именно "система" грузит.
Т.е. явно выполняются какие-то системные вызовы (выделение памяти, переключения контекста), или работают драйверы (обрабатывают прерывания или что-то еще), идёт активный ввод-вывод.

Это всё я всегда предполагаю, Но как узнать ТОЧНО, почему высокая загрузка - не представляю. Поэтому прошу помощи.

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

Но иногда просто нельзя останавливать сервисы. А иногда и процессов работающих уже почти не осталось, а нагрузка всё равно есть.

Вот хочется найти какое-нибудь средство быстро и точно узнавать что же грузит процессор.

что значит "система" грузит? примеры ваших процессов приведите? что для вас "быстро"? если процесс выдает 100% нагрузку в течении 0.5 секунд, с частотой 3 секунды? если раз в минуту грузит 100% на 10 секунд? "быстро" зависит от периода, который конкретно для вас слишком долгий Сорри, ещё не знаю тут как ответить конкретно человеку. Поэтому отпишу сразу всем: 1) Система - это поле sy в top. Или "красненькая" часть столбца в htop. Короче всё, что не user-space и не i/o. 2) Я рассматриваю сейчас случаи, когда 100% загрузка проца/ядра, и либо все эти 100% значатся как sys.load, либо часть как user, а часть как sys. 3) В основном меня начинает этот вопрос волновать когда эта нагрузка постоянна в течение как минимум часа и никуда не девается, и никак не коррелирует со входящим траффиком. Ну либо девается, когда убиваешь всё-всё-всё, гасишь обмен траффиком с сеткой. Результат vmstat уже показыватьно нет смысла. В этот раз причиной был DDOS с флудом TCP-пакетами на 80-й порт. И сетевушка просто захлёбывалась. Ядро даже не успевало забирать из её буфера пакеты. Но это я точно выяснил лишь когда хостер прикрыл траффик из инета кроме как от меня. Но не всегда есть такая возможность. Да и опять же. всё это косвенные способы. Я их знаю и умею. Но я хочу найти некую системную утилиту, которая показывает что там происходит под капотом у ядра. Чем оно грузит проц. Какой драйвер, прерывание от какого устройства, какой системный вызов. Ответить конкретно -- @имя (в одном комментарии допускается только одно). Смотреть статистику прерываний -- /proc/interrupt (вообще, man 5 proc -- полезное чтиво). А тут нагуглил кучу разных мониторов.

надо сходить сюда, можете найти русский перевод или похожие статьи. Поможет вам ограничить выборочно потребление CPU процессами

почитать про strace и подобные ему sudo strace -t -e trace=open,connect,accept unity сможете увидеть много интересного

для ядра - ftrace или поищите еще kernel tracer-ов

утилиты, которая дает понять это с одного взгляда я не знаю, если вы не нагуглите, я бы пошел следующим способом: настроить мониторинг процессов так, чтобы в случае возникновения нагрузки на K% на N секунд каким-либо процессом, он давал алерт.

Можно наскриптовать так, чтобы при возникновении алерта, мониторинг натравливал trace на этот процесс, на секунду, допустим, и сохранял бы список самых часто выполняемых / долгих функций.

Но тут нужно быть осторожным, чтобы не повалить систему и не заполнить hdd. Т.е. скриптинг должен учитывать, что необязательно ставить trace на процесс, который уже был под трейсом (т.е. для которого уже сохранен tracefile), иначе процессы начнут тормозить еще больше, к примеру. Нельзя трейсить слишком долго - гигабайтные дампы вам не нужны.

Если вы решаете конкретную задачу борьбы с DDoS - ну, или очень много денег и очень много дц (повезло, если у вас есть), или cloudflare - я бы так пошел для начала.

Т.е. тут все от задач зависит, дебажить драйвер ядра - один подход, защищаться от ddos - другой.

Собственно, поставил Steam-клиент на Linux (у меня Arch), а он, падла, грузит ЦП на 60 процентов - каждое ядро!

Запускаю какую-нибудь игру, а FPS

10-15. Я подозреваю, что это из-за того, что Steam не поддерживает Arch, несмотря на поддержку Стима самим Арчем.

У кого какие мысли по поводу этого? Просто не хочется ребутиться в Дебиан, чтобы пользоваться Стимом.

Железо: CPU - Intel Core i5-3570k, 3400Mhz Videocard - Gigabyte PCI-E (nVidia GV-N760OC-2GD) GeForce GTX 760, 2048Mb RAM - 8 gb

System - Arch Linux + OpenBox WM


Профиль сносить пробовал?


ребутиться в Дебиан, чтобы пользоваться Стимом



Steam - забагованный, глючный, тормозной кусок говна даже на оффтопике.

УМВР. Что за железо?


Да у меня вроде нормально работает. Сильно тормозит при закачке игр и их обновлений только.

Железо:
CPU - Intel Core i5-3570k, 3400Mhz
Videocard - Gigabyte PCI-E (nVidia GV-N760OC-2GD) GeForce GTX 760, 2048Mb
RAM - 8 gb

System - Arch Linux + OpenBox WM

Очень странно. Запусти стим из консоли и посмотри, что на выхлопе, когда проц нагружен. Ты уверен, что это именно стим ест проц?


Opensuse - всё работает. Попробуй включить Steam Runtime.

А его можно выключать? О_о

Настройки->сообщество->включить сообщество steam в игре

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

о, щи, попутал steamruntime и steamoverlay. рантайм это либы, поставляемые со стимом для запуска игоря. в генте для этой штуки есть специальный юз, если его выключить - стим будет юзать системные библиотеки (sdl'и всякие etc).


Можно. Гентушники так и делают, у них для этого есть USE-флаг. Пользователи Ubuntu 12.04 тоже отключают за ненадобностью - для компиляции Steam и игр Valve используется пакетная база Ubuntu 12.04. Остальные игры компилируются или там же, или изначально сделаны для совместимости со всеми дситрибутивами Linux (LSB или носят все библиотеки-зависимости с собой). Отключать Steam Runtime вот так:

Включать с единицей. Но если Steam при запуске будет сообщать что Steam Runtime не включен, хотя ты включил - смотри /usr/bin/steam. Например в Gentoo именно там прописано то, хочет ли пользователь Steam Runtime.


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

Таки ZenitharChampion посоветовал, не я :). Но главное, что получилось.


А что означает этот STEAM_RUNTIME? Может мне тоже стоить его отключить, хотя УМВР?

У меня на Арче стим прекрасно работает. Бывает только не стартует с первого раза, ссылаясь на проблемы соединения с сервером. Зато при повторном запуске соединяется сразу же.

m0rph ★★★★★ ( 12.02.14 09:51:17 )
Последнее исправление: m0rph 12.02.14 09:51:38 (всего исправлений: 1)


Linux-версия твоей любимой игры зависит от ядра Linux версии не меньше такой-то, glibc версии не меньше такой-то, а также наборчика системных библиотек. У тебя обязательно должны быть ядро Linux и glibc, а остальное игра может таскать с собой

У ядра и glibc отличная совместимость - то, что было скомпилировано с версиями 5-летней давности, без проблем будет работать сейчас! Поэтому для того чтобы игра заработала у как можно большего числа людей, нужно использовать ядро и glibc как можно старее. Например Linux 2.6.18 и glibc 2.4. Ниже объясню почему именно эти версии. А если используется ядро 3.10 и glibc 2.18, в игру не смогут поиграть большинство линуксоидов. Как минимум полгода.

Мой собственноручно скомпилированный в новой системе Amule последней версии просит минимальную версию ядра Linux 2.6.4. Вывод: если новые фичи нового ядра не используются, прога привязывается к фичам старого ядра.

Мы рассмотрели два важных компонента, теперь посмотрим на третий, зависимости:

В Linux решена проблема DLL-hell. Вот например библиотека libXau.so.6 в Windows называлась бы libxau.dll. Когда выйдет новая версия со сменой API и ABI, название для Linux будет libXau.so.7, а для Windows libxau.dll. Другая библиотека с тем же названием! Все зависящие от этой библиотеки программы сломаются. Это и есть DLL-hell.

В Linux есть другая проблема. Когда выйдет libXau.so.7, libXau.so.6 удалят из новых версий дистрибутивов Linux. В /usr/lib/ лежат не две и не пять последних версий системных библиотек, а по одной. Потому что Open Source, потому что можно пересобрать. Что делать Closed Source?

1). Таскать вообще все библиотеки-зависимости с собой. Минус: Windows-версия игры занимает 20 Мб, а Linux-версия 200 Мб. Зато заработает у всех пользователей.

2). Статичная линковка. Минус: пройдёт 5 лет, в системных библиотеках исправят много сетевых уязвимостей. А пользователей твоей программы будут взламывать через них, потому что ты уже забудешь про свою программу, а пользователи не смогут её пересобрать.

3). LSB. Первый вариант минус большая подборка библиотек, которые не надо таскать с собой. Именно благодаря LSB Adobe Flash Player распространяется в виде одного 6-мегабайтного libflashplayer.so без пачки зависимостей, а запускается во всех дистрибутивах Linux. Когда я выше говорил про ядро Linux 2.6.18 и glibc 2.4, я имел в виду версии из списка LSB.

Вот например если скомпилировать aMule не по правилам Open Source, а по правилам LSB, то вместо той горы библиотек программа будет таскать с собой только libcryptopp.so.9, libGeoIP.so.1, libixml.so.2, libthreadutil.so.6, libupnp.so.6, libwx_baseu-2.8.so.0, libwx_baseu_net-2.8.so.0, libwx_gtk2u_adv-2.8.so.0, libwx_gtk2u_core-2.8.so.0.

Как работает? LSB базируется на RHEL5. Когда вышел RHEL6, была обеспечена бинарная совместимость с RHEL5 путём сохранения нескольких десятков старых библиотек в /usr/lib. Остальные дистрибутивы Linux также совместимы с RHEL5, например Debian. Я соврал когда сказал что в /usr/lib всегда одна версия одной библиотеки, на самом деле их может быть две: одна старая из списка, и одна новая. Старая для проприетарщины, новая для Open Source. В списке смотреть Generic, пункты Core и Desktop. А если собрать проприетарщину с последней версией библиотеки, как Open Source, то потом библиотеку отовсюду удалят и пользователи будут вынуждены скопировать библиотеку из старой системы.

4). Компилировать в Ubuntu 12.04. Плюс: не такой старый дистрибутив линукса, как RHEL/CentOS 5. Минус: Canonical не обеспечивал совместимости Ubuntu 12.10-13.10 с 12.04, он не Red Hat, он не такой сильный. Steam таскает с собой 292,5 Мб библиотек из Ubuntu 12.04 - это и есть Steam Runtime. Но в Steam пускают не все программы.

Егор

Егор Морозов | 28 Ноября, 2020 - 12:19


Steam, пожалуй, самая известная игровая площадка на ПК: здесь есть как магазин, так и сообщества. Здесь можно общаться и даже звонить друзьям, смотреть трансляции и многое другое. И, разумеется, все это привело к тому, что современный клиент Steam может отъедать себе до гигабайта оперативной памяти:


Это больше, чем ест известный обжора Chrome с 7 не самыми легкими вкладками, а ведь я даже не качал игры в Steam: просто открыл главную страницу распродажи и слегка промотал вниз.

Разумеется, если у вас мощный игровой ПК с 16 и более гигабайтами оперативной памяти, вы такой жор даже не заметите. Однако по статистике Steam еще больше трети игроков имеют 8 ГБ ОЗУ или меньше, и в таком случае потеря гигабайта драгоценной памяти может аукнуться в современных требовательных проектах:



Есть ли выход из положения? Да. У клиента Steam есть минималистичный режим без браузера, в котором потребление памяти падает до. смешных 50-60 МБ:


Запустить такой режим несложно: перейдите в папку с установленным Steam, найдите там файл steam.exe и создайте его ярлык. Переместите его в удобной место, после чего зайдите в его свойства и допишите в конце строки «Объект» следующий текст: -no-browser +open steam://open/minigameslist. Должно получиться так:




После этого можете запускать Steam в минималистичном виде по этому ярлыку. Разумеется, его возможности будут ощутимо урезаны: никакого магазина не будет, так что купить игру не получится (а вот активировать, имея ключ — можно). Нет торговой площадки и нельзя посмотреть профиль. Но можно запускать и устанавливать игры (удалять опять же нельзя), общаться с друзьями и смотреть скриншоты и инвентарь. Короче говоря, таким способом можно получить функционал Steam 10-летней давности, а для игр больше и не нужно.

Если вы хотите все вернуть как было — просто закройте минималистичный Steam и откройте его любым способом без созданного вами ярлыка, после чего кликните правой кнопкой мыши по его иконке на панели задач и перейдите на нужную вкладку (например, Библиотека или Магазин).

Что-то на 100% грузит CPU (Как узнать что именно?)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Что-то на 100% грузит CPU

В последние дни начал замечать, что утром (а всю ночь компьютер у меня качает файлы из Интернетеа) процессор загружен на 50% (или одно ядро на 100%). Когда захожу в монитор, то вижу что загрузка ядер процессора идёт попеременно и по-разному: то 20%+80%, то 65%+35%, а то и вовсе 0%+100%. В общем, соотношение разное, но сумма всегда равна 100%. При этом ни одного приложения не запущено. Сам монитор в списке запущенных приложений не показывает то, что так нагружает процессор. Запуск монитора через sudo хоть и выводит больше процессов, но именно тот, что загружает систему в списке отсутствует. Перегрузка компьютера помогает. Но это же не метод! Надо знать причину и устранять её.

Прежде чем решить проблему, необходимо понять, что так нагружает систему. Вот с этим вопросом и обращаюсь к сообществу! Помогите, пожалуйста, советом.

Yes, I am a criminal. My crime is that of curiosity. My crime is that of
judging people by what they say and think, not what they look like.

Спасибо. Команда top выдала следующее:

А вот результат работы команды ps -aux:

Однако это привело меня в ступор. Во-первых, на моём компьютере нет других пользователей кроме "root" и "stanislav", а здесь процесс запущен от имени какого-то "beaglein". А во-вторых, в Интернете не могу найти никакой информации об "beagle-build-in".

Гадость какая-то непонятная.


Главное, не волноваться!
Это просто программа beagle создает кэш, для того, чтобы потом можно было быстро найти какие-нибудь данные на диске. Как мне кажется, она должна начинать кэшировать после 12 ночи. Можешь убить задание: в командной строке набрать kill -9 32620.
Вот ссылка на их сайт: Main Page - Beagle.
И пользователей на компе обычно куча. Смотреть их так можно less /etc/passwd.
Сейчас не могу дать ссылку на более подробное обьяснение, что эти за пользователи. beagle is the indexing thing (like google desktop)
I'm guessing this is the indexing process thats eating cpu like mad.

И даже смог убить процесс.

Но! Не нужно мне никакое индексирование! Я и так знаю где и что лежит у меня на компьютере. Вот бы суметь отключить навсегда этот самый beagle.

beagle is the indexing thing (like google desktop)
I'm guessing this is the indexing process thats eating cpu like mad.

И даже смог убить процесс.

Но! Не нужно мне никакое индексирование! Я и так знаю где и что лежит у меня на компьютере. Вот бы суметь отключить навсегда этот самый beagle.

бигль запускается по крону. и, вероятнее всего по system crontab (/etc/crontab), которая, грубо говоря, выполняет все, что находится в в /etc/cron.hourly, /etc/cron.daily, /cron/cron.weekly итд

в случае opensuse, это управляется yast. в случае ubuntu скорее всего тоже как-нить, "гуманоидно"


На Reddit обратили внимание на неуемные аппетиты новой библиотеки Steam, вышедшей сегодня.

Во-первых, она очень любит процессорную мощность. Речь и о CPU, и о GPU: даже простые действия прилично грузят процессор, а один из пользователей заметил загрузку 19% своего GPU во время скроллинга в библиотеке.


Еще один пример: пользователь провел в библиотеке много времени и обнаружил, что Steam «съел» 1,8 гигабайта оперативной памяти.


Несколько лет назад клиент Steam перешел на браузерный движок Chromium везде, кроме библиотеки. Теперь она тоже работает на нем, что и привело к проблемам с производительностью.

Три свежих постера фильма "Обитель зла: Раккун Сити"

Полет на дно

Жиза


щас проверил чет ниче не нагружает


И не только. Без ночной темы она еще и глаза портит)


Janekste

Janekste написал: Ахахаха. после такого кто то ещё скажет, якобы стим лучшая платформа на ПК?

скажу, так как такого функционала и выбора игр на текущий момент не предоставляет никакая другая платформа

Janekste написал: Стим испугался эпиков, начал развиваться, и что мы видим?

вполне возможно что это был плановый переход задуманый еще ранее. увы мы этого не знаем

Janekste написал: Я если честно афигел от того, насколько медлительна и неудобна новая библиотека.

чем она не удобная? она особо не так и сильно изменилась кроме как графического оформления

Janekste написал: Видеопамяти кстати стим жрёт порядком. Раньше в простое у моего компа максимум 400-500 видео было занято. А после обновы стима видео постоянно 900-1000 памяти занято. Это вообще нормально?

что у тебя за комп. у меня он никогда столько не жрал и не жрет

Janekste написал: Самое забавное, что в EGS интерфейс более приятный по дизайну, чем обнова стимовская.

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

Janekste написал: Вы готовы покупать мощные компы ради того, чтобы продолжать пользоваться стимом в будущем с его будущими кривыми обновами?

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

Читайте также: