The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск дистрибутивов Альт Сервер, Альт Рабочая станция и Альт Образование 10.0, opennews (?), 19-Дек-21, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


198. "Выпуск дистрибутивов Альт Сервер, Альт Рабочая станция и Аль..."  +1 +/
Сообщение от n00by (ok), 20-Дек-21, 13:48 
> Как Альт решает проблему неспособности ядра предотвращать фризы при нехватке памяти?

А она есть? Как воспроизвести?

> Используются ли спецпатчи ядра (например, ROSA Linux использует le9 patch)?

Посмотрел, что она там на самом деле использует.


diff --git a/security/altha/altha_lsm.c b/security/altha/altha_lsm.c
new file mode 100644
index 000000000000..7d1cc8f8a1a7
--- /dev/null
+++ b/security/altha/altha_lsm.c
@@ -0,0 +1,325 @@
+/*
+ * AltHa Linux Security Module
+ *
+ * Author: Anton Boyarshinov <boyarsh@altlinux.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2, as
+ * published by the Free Software Foundation.
+ *
+ */

Вот тут le9 patch? https://github.com/hakavlad/le9-patch
а вот le9pf.diff

diff --git a/Documentation/admin-guide/sysctl/vm.rst b/Documentation/admin-guide/sysctl/vm.rst
index f455fa00c00f..a6146e0fc88a 100644
--- a/Documentation/admin-guide/sysctl/vm.rst
+++ b/Documentation/admin-guide/sysctl/vm.rst
@@ -69,6 +69,8 @@ Currently, these files are in /proc/sys/vm:
- stat_refresh
- numa_stat
- swappiness
+- unevictable_activefile_kbytes_low
+- unevictable_activefile_kbytes_min
- unprivileged_userfaultfd
- user_reserve_kbytes
- vfs_cache_pressure
@@ -881,6 +883,31 @@ privileged users (with SYS_CAP_PTRACE capability).
The default value is 1.


+unevictable_activefile_kbytes_low
+=================================
+
+Keep some active file pages still mapped under memory pressure to avoid
+potential disk thrashing that may occur due to evicting running executables
+code. This implements soft eviction throttling, and some file pages can still
+be discarded.
+
+Setting it to 0 effectively disables this feature.
+
+The default value is 512 MiB.
+
+
+unevictable_activefile_kbytes_min
+=================================
+
+Keep all active file pages still mapped under memory pressure to avoid
+potential disk thrashing that may occur due to evicting running executables
+code. This is the hard limit.
+
+Setting it to 0 effectively disables this feature.
+
+The default value is 256 MiB.
+
+
user_reserve_kbytes
===================

diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index afad085960b8..8bb82cf5d74e 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -111,6 +111,22 @@
static int sixty = 60;
#endif

+#if defined(CONFIG_UNEVICTABLE_ACTIVEFILE)
+#if CONFIG_UNEVICTABLE_ACTIVEFILE_KBYTES_LOW < 0
+#error "CONFIG_UNEVICTABLE_ACTIVEFILE_KBYTES_LOW should be >= 0"
+#endif
+#if CONFIG_UNEVICTABLE_ACTIVEFILE_KBYTES_MIN < 0
+#error "CONFIG_UNEVICTABLE_ACTIVEFILE_KBYTES_MIN should be >= 0"
+#endif
+#if CONFIG_UNEVICTABLE_ACTIVEFILE_KBYTES_LOW < CONFIG_UNEVICTABLE_ACTIVEFILE_KBYTES_MIN
+#error "CONFIG_UNEVICTABLE_ACTIVEFILE_KBYTES_LOW should be >= CONFIG_UNEVICTABLE_ACTIVEFILE_KBYTES_MIN"
+#endif
+unsigned long sysctl_unevictable_activefile_kbytes_low __read_mostly =
+    CONFIG_UNEVICTABLE_ACTIVEFILE_KBYTES_LOW;
+unsigned long sysctl_unevictable_activefile_kbytes_min __read_mostly =
+    CONFIG_UNEVICTABLE_ACTIVEFILE_KBYTES_MIN;
+#endif
+
static int __maybe_unused neg_one = -1;
static int __maybe_unused two = 2;
static int __maybe_unused four = 4;
@@ -3081,6 +3097,25 @@ static struct ctl_table vm_table[] = {
        .extra1        = SYSCTL_ZERO,
        .extra2        = SYSCTL_ONE,
    },
+#endif
+#if defined(CONFIG_UNEVICTABLE_ACTIVEFILE)
+    {
+        .procname    = "unevictable_activefile_kbytes_low",
+        .data        = &sysctl_unevictable_activefile_kbytes_low,
+        .maxlen        = sizeof(sysctl_unevictable_activefile_kbytes_low),
+        .mode        = 0644,
+        .proc_handler    = proc_doulongvec_minmax,
+        .extra1        = &sysctl_unevictable_activefile_kbytes_min,
+    },
+    {
+        .procname    = "unevictable_activefile_kbytes_min",
+        .data        = &sysctl_unevictable_activefile_kbytes_min,
+        .maxlen        = sizeof(sysctl_unevictable_activefile_kbytes_min),
+        .mode        = 0644,
+        .proc_handler    = proc_doulongvec_minmax,
+        .extra1        = &zero_ul,
+        .extra2        = &sysctl_unevictable_activefile_kbytes_low,
+    },
#endif
    {
        .procname    = "user_reserve_kbytes",
diff --git a/mm/Kconfig b/mm/Kconfig
index 390165ffbb0f..1e1fb8ad434a 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -63,6 +63,41 @@ config SPARSEMEM_MANUAL

endchoice

+config UNEVICTABLE_ACTIVEFILE
+    bool "Keep some active file pages under memory pressure"
+    depends on SYSCTL
+    def_bool y
+    help
+      Keep some active file pages still mapped under memory pressure to avoid
+      potential disk thrashing that may occur due to evicting running executables
+      code.
+
+      The UNEVICTABLE_ACTIVEFILE_KBYTES_LOW value defines a threshold to activate
+      file pages eviction throttling. The vm.unevictable_activefile_kbytes_low
+      sysctl knob is used to change the amount in the runtime (setting it to 0
+      effectively disables this feature).
+
+      Recommended value: 524288 for typical desktop workload.
+
+      The UNEVICTABLE_ACTIVEFILE_KBYTES_MIN value sets the amount of pages to keep
+      as a hard limit. The vm.unevictable_activefile_kbytes_min sysctl knob is used
+      to change the amount in the runtime (setting it to 0 effectively disables
+      this feature).
+
+      Recommended value: 262144 for typical desktop workload.
+
+      See also: Documentation/admin-guide/sysctl/vm.rst
+
+config UNEVICTABLE_ACTIVEFILE_KBYTES_LOW
+    int "Default value for vm.unevictable_activefile_kbytes_low"
+    depends on UNEVICTABLE_ACTIVEFILE
+    default "524288"
+
+config UNEVICTABLE_ACTIVEFILE_KBYTES_MIN
+    int "Default value for vm.unevictable_activefile_kbytes_min"
+    depends on UNEVICTABLE_ACTIVEFILE
+    default "262144"
+
config DISCONTIGMEM
    def_bool y
    depends on (!SELECT_MEMORY_MODEL && ARCH_DISCONTIGMEM_ENABLE) || DISCONTIGMEM_MANUAL
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 7b4e31eac2cf..93760769d676 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -166,6 +166,11 @@ struct scan_control {
#define prefetchw_prev_lru_page(_page, _base, _field) do { } while (0)
#endif

+#if defined(CONFIG_UNEVICTABLE_ACTIVEFILE)
+extern unsigned long sysctl_unevictable_activefile_kbytes_low;
+extern unsigned long sysctl_unevictable_activefile_kbytes_min;
+#endif
+
/*
  * From 0 .. 200.  Higher means more swappy.
  */
@@ -2225,6 +2230,10 @@ enum scan_balance {
    SCAN_FILE,
};

+#if defined(CONFIG_UNEVICTABLE_ACTIVEFILE)
+#define K(x) ((x) << (PAGE_SHIFT - 10))
+#endif
+
/*
  * Determine how aggressively the anon and file LRU lists should be
  * scanned.  The relative value of each set of LRU lists is determined
@@ -2418,6 +2427,19 @@ static void get_scan_count(struct lruvec *lruvec, struct scan_control *sc,
            BUG();
        }

+#if defined(CONFIG_UNEVICTABLE_ACTIVEFILE)
+        if (lru == LRU_ACTIVE_FILE) {
+            unsigned long activefile_kbytes_now = K(global_node_page_state(NR_ACTIVE_FILE));
+            unsigned long low_scan_granularity = SWAP_CLUSTER_MAX >> sc->priority;
+
+            if (activefile_kbytes_now < sysctl_unevictable_activefile_kbytes_low &&
+                activefile_kbytes_now > sysctl_unevictable_activefile_kbytes_min &&
+                scan > low_scan_granularity)
+                scan = low_scan_granularity;
+            else if (activefile_kbytes_now <= sysctl_unevictable_activefile_kbytes_min)
+                scan = 0;
+        }
+#endif
        nr[lru] = scan;
    }
}

Ответить | Правка | К родителю #116 | Наверх | Cообщить модератору

214. "Выпуск дистрибутивов Альт Сервер, Альт Рабочая станция и Аль..."  +/
Сообщение от foo (?), 20-Дек-21, 15:45 
>А она есть? Как воспроизвести?

Есть: https://www.opennet.ru/opennews/art.shtml?num=51231

>Как воспроизвести?

1. Методом Ташкинова, см ссылку выше

2. Синтетикой: https://github.com/hakavlad/file-starve

>Вот тут le9 patch? https://github.com/hakavlad/le9-patch

Да.

Ответить | Правка | Наверх | Cообщить модератору

309. "Выпуск дистрибутивов Альт Сервер, Альт Рабочая станция и Аль..."  +/
Сообщение от n00by (ok), 21-Дек-21, 11:44 
>>А она есть? Как воспроизвести?
> Есть: https://www.opennet.ru/opennews/art.shtml?num=51231
>>Как воспроизвести?
> 1. Методом Ташкинова, см ссылку выше

Не актуально.

> 2. Синтетикой: https://github.com/hakavlad/file-starve

Ссылки на багтреккер нет?

>>Вот тут le9 patch? https://github.com/hakavlad/le9-patch
> Да.

А где он в упомянутой ОС?

Ответить | Правка | Наверх | Cообщить модератору

318. "Выпуск дистрибутивов Альт Сервер, Альт Рабочая станция и Аль..."  +/
Сообщение от foo (?), 21-Дек-21, 13:21 
>Не актуально.

В чем выражается неактуальность?

>Ссылки на багтреккер нет?

Какой багтрекер? Ядра или альта? В ядре полно таких.

>А где он в упомянутой ОС?

в росе этот https://abf.io/import/kernel-5.10/blob/rosa2021.1/le9pf.diff - старый вариант от пост-фактума

Ответить | Правка | Наверх | Cообщить модератору

324. "Выпуск дистрибутивов Альт Сервер, Альт Рабочая станция и Аль..."  +1 +/
Сообщение от n00by (ok), 21-Дек-21, 14:41 
>>Не актуально.
> В чем выражается неактуальность?

Ну я даже и не знаю, как объяснить. Какой ныне год и версия ядра?

>>Ссылки на багтреккер нет?
> Какой багтрекер? Ядра или альта? В ядре полно таких.

Тема об Альте. Со слов Вашего анонимного сотрудника можно сделать вывод, что в Альте такое наблюдается. Но пока не видно фактов.

>>А где он в упомянутой ОС?
> в росе этот https://abf.io/import/kernel-5.10/blob/rosa2021.1/le9pf.diff

Error 500
Something went wrong.

We've been notified about this issue
and we'll take a look at it shortly.

Try to open other pages.

Кстати, в заголовке 404. Ну, это нормально. :)

> старый вариант от пост-фактума

Старый? И почему же я не удивлён такому повороту. "использует le9 patch", ага.

Ответить | Правка | Наверх | Cообщить модератору

380. "Выпуск дистрибутивов Альт Сервер, Альт Рабочая станция и Аль..."  +/
Сообщение от йй (?), 22-Дек-21, 04:32 
>Какой ныне год и версия ядра?

2021, 5.15 стабильное

>Error 500

О проекте

Linux stable-based kernel 5.10

Последний коммит
avatar
mikhailnov добавил коммит 24a4eefc34 27 дек 2020, 01:53 (год назад)
test another version of le9 from pf-kernel maintainer

проблема на вашей стороне, УМВР:
diff --git a/Documentation/admin-guide/sysctl/vm.rst b/Documentation/admin-guide/sysctl/vm.rst
index f455fa00c00f..a6146e0fc88a 100644
--- a/Documentation/admin-guide/sysctl/vm.rst
+++ b/Documentation/admin-guide/sysctl/vm.rst
@@ -69,6 +69,8 @@ Currently, these files are in /proc/sys/vm:
- stat_refresh
- numa_stat
- swappiness
+- unevictable_activefile_kbytes_low
+- unevictable_activefile_kbytes_min

>"использует le9 patch"

Именно так, один из вариантов патча в ядре есть.

Ответить | Правка | Наверх | Cообщить модератору

393. "Выпуск дистрибутивов Альт Сервер, Альт Рабочая станция и Аль..."  +/
Сообщение от n00by (ok), 22-Дек-21, 17:55 
>>Какой ныне год и версия ядра?
> 2021, 5.15 стабильное

А по ссылке какие?

>>Error 500
> О проекте
> Linux stable-based kernel 5.10
> Последний коммит
> avatar
> mikhailnov добавил коммит 24a4eefc34 27 дек 2020, 01:53 (год назад)
> test another version of le9 from pf-kernel maintainer
> проблема на вашей стороне, УМВР:

Error 500 это на моей стороне проблема, угу. Автономные разработчики во всей красе.

Где же ещё может случиться Internal Server Error. =)  

>[оверквотинг удален]
> --- a/Documentation/admin-guide/sysctl/vm.rst
> +++ b/Documentation/admin-guide/sysctl/vm.rst
> @@ -69,6 +69,8 @@ Currently, these files are in /proc/sys/vm:
>  - stat_refresh
>  - numa_stat
>  - swappiness
> +- unevictable_activefile_kbytes_low
> +- unevictable_activefile_kbytes_min
>>"использует le9 patch"
> Именно так, один из вариантов патча в ядре есть.

Как ловко мы удалили "старый вариант от пост-фактума". Вот ещё один из вариантов:

-- Осетрину прислали второй свежести, -- сообщил буфетчик.
-- Голубчик, это вздор!
-- Чего вздор?
-- Вторая свежесть -- вот что вздор! Свежесть бывает только одна -- первая, она же и последняя. А если осетрина второй свежести, то это означает, что она тухлая!
-- Я извиняюсь, -- начал было опять буфетчик, не зная, как отделаться от придирающегося к нему артиста.
-- Извинить не могу, -- твердо сказал тот.
-- Я не по этому делу пришел, -- совсем расстраиваясь, проговорил буфетчик.
-- Не по этому? -- удивился иностранный маг. -- А какое же еще дело могло привести вас ко мне? Если память не изменяет мне, из лиц, близких вам по профессии, я знался только с одной маркитанткой, но и то давно, когда вас еще не было на свете. Впрочем, я рад. Азазелло! Табурет господину заведующему буфетом!

Ответить | Правка | Наверх | Cообщить модератору

217. "Выпуск дистрибутивов Альт Сервер, Альт Рабочая станция и Аль..."  +/
Сообщение от Аноним (212), 20-Дек-21, 15:54 
>А она есть?

Ну, судя по вопросу, ничего у вас для ее решения не делается.

>Как воспроизвести?

Проще некуда. Запускаете много тяжелых вкладок в браузере пока не съест всю память.

Ответить | Правка | К родителю #198 | Наверх | Cообщить модератору

308. "Выпуск дистрибутивов Альт Сервер, Альт Рабочая станция и Аль..."  +1 +/
Сообщение от n00by (ok), 21-Дек-21, 11:43 
>>А она есть?
> Ну, судя по вопросу, ничего у вас для ее решения не делается.

У меня она в Gentoo и не наблюдается. Судя по ответу, в Альте Вы её не видели. Судя по упоминанию le9-patch в другой ОС, Вы её ненавязчиво рекламируете. Судя по фактическому отсутствию le9-patch, Вы там работаете.

>>Как воспроизвести?
> Проще некуда. Запускаете много тяжелых вкладок в браузере пока не съест всю
> память.

Запустил параллельно на всех ядрах компиляцию chromium, исходники размещены в tmpfs. Добился, что в swap ушло 16 Гиг. Командами swapon и swapoff перекидываю подкачку между твердотельным накопителем и НЖМД. Слушаю flack. Рыдаю над счастливыми тестерами ПОКА ХРОМ 12, где якобы le9-patch.

Ответить | Правка | Наверх | Cообщить модератору

334. "Выпуск дистрибутивов Альт Сервер, Альт Рабочая станция и Аль..."  +/
Сообщение от Anonymus (?), 21-Дек-21, 15:57 
а теперь тоже самое проделайте на материнке без NVMe, на какой-нибудь дешевой miniATX материнке и одной банкой памяти
Ответить | Правка | Наверх | Cообщить модератору

337. "Выпуск дистрибутивов Альт Сервер, Альт Рабочая станция и Аль..."  +1 +/
Сообщение от n00by (ok), 21-Дек-21, 18:11 
> а теперь тоже самое проделайте на материнке без NVMe, на какой-нибудь дешевой
> miniATX материнке и

Рыдаю уже под столом. Ждал этот комментарий, особенно про NVMe. Нет, фоточки железа просить не стоит. Я все эксперименты провёл вчера и повторять не собираюсь. У того Анонима что-то там тормозит, все вопросы к нему.

> одной банкой памяти

Учите матчасть и арифметику, если пропускные способности поделить не можете.

Ответить | Правка | Наверх | Cообщить модератору

333. "Выпуск дистрибутивов Альт Сервер, Альт Рабочая станция и Аль..."  +1 +/
Сообщение от Anonymus (?), 21-Дек-21, 15:48 
> А она есть? Как воспроизвести?

Как и в любом другом дистре - взять уривое железо с одноканальной памятью и тормозным дисковым контроллером.

Ответить | Правка | К родителю #198 | Наверх | Cообщить модератору

338. "Выпуск дистрибутивов Альт Сервер, Альт Рабочая станция и Аль..."  +1 +/
Сообщение от n00by (ok), 21-Дек-21, 18:18 
Нет, не как в любом. Читайте другие сообщения в теме, если мне не верите. Тут у кого-то Альт работает быстрее Федоры на Core2Duo. Клоны Федоры обязаны страдать, ИБМ вас вертит на Красной Шапке и правильно делает.
Ответить | Правка | Наверх | Cообщить модератору

365. "Выпуск дистрибутивов Альт Сервер, Альт Рабочая станция и Аль..."  +1 +/
Сообщение от Vladjmir (ok), 21-Дек-21, 21:15 
Вот этот ноутбук на федоре страшно тормозит:

Acer Aspire 3 A315-42-R73M Ryzen 3 3200U, 4Gb, 1Tb, AMD Radeon Vega 3, 15.6", FHD (1920x1080), Linux, black, WiFi

На альте он работает весьма сносно.

Оба дистра ставил с ливки с раб.окружением Cinnamon.
Федора: Fedora-Cinnamon-Live-x86_64-34-1.2.iso
Альт: alt-p10-cinnamon-20210912-x86_64.iso

Ответить | Правка | Наверх | Cообщить модератору

416. "Выпуск дистрибутивов Альт Сервер, Альт Рабочая станция и Аль..."  +/
Сообщение от Michael Shigorin с дорогиemail (?), 27-Дек-21, 12:06 
> Ryzen 3 3200U, 4Gb, 1Tb

Недавно на что-то подобное водружал Simply Linux (9.1-beta с обновлением до p10), только 6 Гб ОЗУ и NVMe на 256 Гб.  Вообще никаких вопросов (хотя сперва было ожидал, что что-нить с графикой у той старенькой беты не срастётся).

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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