nixp.ru v3.0

22 августа 2017,
вторник,
23:29:18 MSK

DevOps с компанией «Флант»
sunjob написал 13 декабря 2016 года в 02:43 (3428 просмотров) Ведет себя неопределенно; открыл 8 тем в форуме, оставил 44 комментария на сайте.

ardour — стартует с «общеизвестным» предупреждением:

WARNING: Your system has a limit for maximum amount of locked memory!
         This might cause Ardour to run out of memory before your system runs
         out of memory. You can view the memory limit with 'ulimit -l', and it
         is normally controlled by /etc/security/limits.conf

инет пролопатил, решения вроде есть но, в основном для «более менее» современного дистрибьютива (без проблем решилось на другой станции, с установленной Slackware-14.1 x64), на старом не получилось

(на всякий случай, меняться ни чего не будет, надо НАСТРОИТЬ, если это возможно)

если будут идеи, волшебные педнили, заранее благодарен

далее выводы команд и «попыток»

main$ ulimit -l

64


main$ ulimit -l 128

bash: ulimit: max locked memory: cannot modify limit: Operation not permitted


main$ cat /etc/security/limits.conf

*               soft    locks          1024
*               hard    locks          65536


main$ cat /etc/set_rlimits.conf

ALL /usr/bin/jackd     -1  80
ALL /usr/bin/qjackctl  -1  80
ALL /usr/bin/ardour2   -1  80


main$ cat /etc/profile.d/limit.sh

#!/bin/sh
ulimit -l unlimited
ulimit -n 10240
ulimit -c unlimited


main$ cat /proc/sys/fs/file-max

2489016


main$ uname -a

Linux main 2.6.33.20.3-smp #1 SMP Thu Jun 16 10:01:17 NOVST 2016 i686 Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz GenuineIntel GNU/Linux

OS/Distrib:
slackware-12.2 RAM & HDD ~ 'near unlimited' :o)
TDE-3.5.12
qjackctl-0.3.8-i486-sl12.2_qt4
jack-audio-connection-kit-0.121.3-i486-sl12.2_qt4
ardour-2.8.12-i486-sl12.2_qt4_patch

// add — kernel config

залез в конфиг ядра (grep 'LOCK’), буду пока точить «тут» :о)

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
CONFIG_IOSCHED_BFQ=y
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
CONFIG_DEFAULT_BFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="bfq"
CONFIG_PREEMPT_NOTIFIERS=y
# CONFIG_INLINE_SPIN_TRYLOCK is not set
# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
# CONFIG_INLINE_SPIN_LOCK is not set
# CONFIG_INLINE_SPIN_LOCK_BH is not set
# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
CONFIG_INLINE_SPIN_UNLOCK=y
# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
# CONFIG_INLINE_READ_TRYLOCK is not set
# CONFIG_INLINE_READ_LOCK is not set
# CONFIG_INLINE_READ_LOCK_BH is not set
# CONFIG_INLINE_READ_LOCK_IRQ is not set
# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
CONFIG_INLINE_READ_UNLOCK=y
# CONFIG_INLINE_READ_UNLOCK_BH is not set
CONFIG_INLINE_READ_UNLOCK_IRQ=y
# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
# CONFIG_INLINE_WRITE_TRYLOCK is not set
# CONFIG_INLINE_WRITE_LOCK is not set
# CONFIG_INLINE_WRITE_LOCK_BH is not set
# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
CONFIG_INLINE_WRITE_UNLOCK=y
# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
CONFIG_MUTEX_SPIN_ON_OWNER=y
CONFIG_FREEZER=y
Дмитрий Шурупов

А вот это обсуждение нагуглили? Обратите внимание на последнее сообщение, ссылающееся на http://slackwiki.com/Resource_Limits «с модификацией».

Дмитрий Шурупов

Чуть ниже в результатах увидел прямо ваш случай (Ardour, Slackware 12.x, ulimit). И там… ссылаются на то же самое обсуждение комментарием выше :-)

sunjob

дмитрий, да все я перерыл, и эти темы тоже… :о)
наткнулся на решение случайно…

//
// неочевидные (для простого юзера :о) вещи
//
пакет:
- sysvinit-2.86-i486-6

в «сборке» имеется патч:
- initscript.sample.diff

-#    /bin/sh /etc/initscript <id> <level> <action> <process>
+#    /bin/sh /sbin/initscript <id> <level> <action> <process>

поэтому и не «работал» /etc/initscript
(непонятно, почему «так решили», что «настройку» надо положить в «/sbin» … ну да ладно)

небольшой «штрих»
ln -s /etc/initscript /sbin/initscript

cat /etc/initscript
ulimit -Hl unlimited
ulimit -l unlimited

теперь все ок!

Дмитрий Шурупов

Поздравляю! :-) Кажется, что ровно про это и сказано в том обсуждении по первой ссылке:


The script works only if the file
exists in the directory /etc, not /sbin. The man page for
init states that the script should be at /sbin.
[..]
This is a bug which should be fixed- probably, by setting the appropriate
option to «configure» in the package sysvinit-2.86…
sunjob

неее! там сказано ровным счетом все наоборот, ну как обычно у англо-говорящих:

скрипт, типа, будет работать, если будет находиться в каталоге /etc, а не в /sbin

особенности дистибьюто-строения (старая-добрая слака :о)