Где Linux устанавливает значения по умолчанию для SHMMAX?

В основном, вам нужно убедиться, что _LARGE_FILES определен, например, попробуйте

# export CFLAGS="-O3 -D_LARGE_FILES"

- -OX - это необязательно. Я рекомендую -O3 по умолчанию с gcc и -O2 с xlc

Или, вы можете попробовать мою упаковку (coreutils-8.25, по крайней мере).

p.s. Я только что проверил сайт perzl - он тоже сейчас упаковывает 8.25. Ключевое различие между нашими методами упаковки в том, что я использую installp в качестве менеджера пакетов и использую /opt/bin, а не /opt/freeware/bin (что означает, что вы можете установить оба варианта рядом и решить, какой из них проще в управлении) - Примечание: поскольку я не знаю, как здесь принято, я (пока) не добавляю URL к моему 'aixtools'. Вы можете попытаться привлечь мое внимание через twitter @rootvgnet, если вам это интересно.


Поскольку он слишком большой для комментария - добавляю инструкции по установке, если вы решите использовать мою упаковку

команда установки: -as root- #installp -d /some/dir -agX aixtools.gnu.coreutils; должна показать в выводе блок информации, включающий:

SUCCESSES
---------
  Filesets listed in this section passed pre-installation verification
  and will be installed.

  Selected Filesets
  -----------------
  aixtools.gnu.coreutils.rte 8.25.0.0         # built 22-Aug-2016 1702 UTC

  Requisites
  ----------
  (being installed automatically;  required by filesets listed above)
  aixtools.gnu.gettext.rte 0.19.8.1           # built 21-Aug-2016 1821 UTC
  aixtools.gnu.gettext.share 0.19.8.1         # universal files
  aixtools.gnu.libiconv.rte 1.14.0.4          # built 21-Aug-2016 1623 UTC
  aixtools.gnu.libiconv.share 1.14.0.4        # universal files

Это означает, что кроме coreutils вам также нужны gnu-зависимости 'gettext' для интернационализации текста, и GNU iconv, потому что coreutils не принимает способ, которым AIX iconv реализовал ряд переводов.

Соответствующие ссылки на вики (поскольку пакеты могут обновляться со временем): - http://www.aixtools.net/index.php/coreutils - http://www.aixtools.net/index.php/gettext - http://www.aixtools.net/index.php/libiconv

Короче говоря, после загрузки трех файлов installp в (например, /tmp/aixtools)

# installp -d /tmp/aixtools -agX aixtools.gnu.coreutils

Это установит компоненты "share" и "rte" каждого из них, а также man-страницы coreutils.

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

# installp -u aixtools.gnu.aixtools.man

для их удаления

10
14.06.2017, 03:47
2 ответа

Функция __initipc_ns_initустанавливает начальное значение shmmaxпутем вызова shm_init_ns, который устанавливает его в значение макроса SHMMAX.

Определение SHMMAXнаходится в<uapi/linux/shm.h>:

#define SHMMAX (ULONG_MAX - (1UL << 24)) /* max shared seg size (bytes) */

На 64 -битных машинах это определение равно найденному вами значению, 18446744073692774399.

9
20.08.2021, 11:37

На лету вы можете просто выполнить эхо в /proc/sys/kernel/shmmax!

# echo 20446744073692774399 > /proc/sys/kernel/shmmax

Но большинство людей редактируют /etc/sysctl.conf строкой, похожей на:

kernel.shmmax=your_new_value_here

См. справочную страницу sysctl (8 ).

2
20.08.2021, 11:37

Теги

Похожие вопросы