Plusieurs fichiers pulse-shm pour le même utilisateurs

Bonjour,

Mes utilisateurs se connecte sur mon serveur via un système No Machine OpenNX qui supporte la fonction “shared memory” de pulseaudio. Ce qui m’embête c’est que cela génère de fichier dans le répertoire /dev/shm qui à force peut occuper toute la RAM. De plus un utilisateur peut avoir plusieurs fichier à son UID.

ls -l /dev/shm | grep user0 -r-------- 1 user0 group0 67108904 15 janv. 15:50 pulse-shm-1886947823 -r-------- 1 user0 group0 67108904 15 janv. 15:50 pulse-shm-2729988196 -r-------- 1 user0 group0 67108904 15 janv. 15:50 pulse-shm-4281055998
Comment faire pour n’avoir qu’un seul fichier par UID dans la configuration de pulseaudio?

Merci de votre aide

Tu disposes de combien de RAM sur le serveur ?

$ free -m

shm : shared memory.
Chez moi, /run/shm sur la foi de

$ df -haT | grep shm tmpfs tmpfs 445M 68K 444M 1% /run/shm $ ls /run/shm pulse-shm-1490632800 pulse-shm-1776747288 pulse-shm-1665536392 pulse-shm-3097827281

Chaque processus client de pulseaudio y engendre fichier.
Il ne s’agit pas de plusieurs services pulseaudio mais de plusieurs connexions à un seul service pulseaudio.
Voir clients en paman. Si connexion par le réseau, la commande

netstat -tap

en trahirait «established».

freedesktop.org/wiki/Softwar … nsumption/
«shared memory segments are shared between the process»
Mémoire partagée, mémoire démultipliée.

Voir contenu du fichier /etc/pulse/daemon.conf

Merci de ta réponse Ext

Voici les réponses des commandes :

# free -m
             total       used       free     shared    buffers     cached
Mem:         12040      11258        782          0        147       2200
-/+ buffers/cache:       8910       3130
Swap:            0          0          0
# df -haT | grep shm
tmpfs        tmpfs    5,9G  3,0M  5,9G   1% /dev/shm

Je remarque que tes fichiers shm-pulse sont dans le repertoire run et non pas dev
Voici mon fichier daemon.conf:

#grep -v "#" daemon.conf 
; daemonize = no
; fail = yes
; allow-module-loading = yes
; allow-exit = yes
; use-pid-file = yes
; system-instance = no
enable-shm = yes
shm-size-bytes = 64
; enable-shm = no
; lock-memory = no
; cpu-limit = yes
; high-priority = yes
; nice-level = -11
; realtime-scheduling = yes
; realtime-priority = 5
; exit-idle-time = 20
; scache-idle-time = 20
; dl-search-path = (depends on architecture)
; load-default-script-file = yes
; default-script-file = 
; log-target = auto
; log-level = notice
; log-meta = no
; log-time = no
; log-backtrace = 0
; resample-method = speex-float-3
; enable-remixing = yes
; enable-lfe-remixing = no
; flat-volumes = yes
; rlimit-fsize = -1
; rlimit-data = -1
; rlimit-stack = -1
; rlimit-core = -1
; rlimit-as = -1
; rlimit-rss = -1
; rlimit-nproc = -1
; rlimit-nofile = 256
; rlimit-memlock = -1
; rlimit-locks = -1
; rlimit-sigpending = -1
; rlimit-msgqueue = -1
; rlimit-nice = 31
; rlimit-rtprio = 9
; rlimit-rttime = 1000000
; default-sample-format = s16le
; default-sample-rate = 44100
; default-sample-channels = 2
; default-channel-map = front-left,front-right
; default-fragments = 4
; default-fragment-size-msec = 25

J’ai mis la limite à 64 Mb comme recommandé dans le fichier d’origine. Mais ce que j’aimerai c’est de limiter à un fichier shm par utilisateur. Pour l’instant il y en a plusieurs pour le même utilisateur.

Je ne vois pas d’information très pertinente dans le netstat. Il n’y a que du ssh eou nxssh en status ESTABLISHED. Situation normal pour moi.

Donc ma question est la même comment limiter un fichier pulse-shm par utilisateur?

Fonctionnement habituel de pulseaudio. Un fichier par processus client.

[quote]
[mono]Mem: 12040 11258 782 0 147 2200[/mono][/quote]
Le serveur dispose de 12 Go de RAM.

/dev/shm présente 3 Mo mobilisés sur près de 6 Go (5,9 Go, la moitié de la RAM), moins que le 1% de taux d’occupation affiché…
La fuite n’est pas là.

[quote]
[mono]Swap: 0 0 0[/mono][/quote]
Rien, niente, nada, nothing, ZÉRO swap utilisée sur un total de ZÉRO swap.
Tmpfs se sert également de la swap. Or tu n’as pas de swap.
Mieux vaudrait accorder de la swap à ce système pour le soulager en cas de besoin. Absence de swap subie ou voulue ?
Même une petite swap symbolique de quelques centaines de Mo en fichier swappable pourrait servir ($ man mkswap, $ man swapon).

Identifie ce qui mobilise la mémoire à travers top, htop,vmstat … avant d’incriminer pulseaudio.
Au-delà de l’occupation brute de la mémoire, ne serait-ce pas kswapd qui ralentirait le système à cause du manque de swap ?

À propos de /run/shm et /dev/shm, ça dépendrait de l’ancienneté.

[code]
tmpfs(5) Debian Administrator’s Manual tmpfs(5)

NAME
tmpfs - variables that configure tmpfs filesystems mounted during boot

DESCRIPTION
The /etc/default/tmpfs file contains variable settings in POSIX format:

        VAR=VAL

   Only one assignment is allowed per line.  Comments (starting with '#') are also allowed.

   This  file  is  for  the  configuration  of  tmpfs  filesystems mounted in early boot, before filesystems from /etc/fstab are
   mounted.  This currently includes the filesystems /run, /run/lock, /run/shm and /tmp.  /run is required to be a tmpfs on sys‐
   tems  supporting  tmpfs mounts.  /run/lock and /run/shm may be separate tmpfs mounts, useful for enforcing separate size lim‐
   its.  /tmp is not required to be a tmpfs, but is mounted as a tmpfs by default.[/code]

Ancien tmpfs (doc tmpfs.txt, sources du noyau) :

[code]
2) glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for
POSIX shared memory (shm_open, shm_unlink). Adding the following
line to /etc/fstab should take care of this:

tmpfs	/dev/shm	tmpfs	defaults	0 0

Remember to create the directory that you intend to mount tmpfs on
if necessary.

This mount is not needed for SYSV shared memory. The internal
mount is used for that. (In the 2.3 kernel versions it was
necessary to mount the predecessor of tmpfs (shm fs) to use SYSV
shared memory)[/code]

Encore merci de ta réponse etxeberrizahar,

Non ce n’est pas un problème mémoire bien que je dois faire une petite partition de swap comme recommandé.

[quote=“etxeberrizahar”]Fonctionnement habituel de pulseaudio. Un fichier par processus client.
[/quote]

Et comme tu le dis ce n’est pas le cas actuellement. J’ai plusieurs fichier par processus client

# ls -hl /dev/shm | grep user0 -r-------- 1 user0 group 65M 23 janv. 15:45 pulse-shm-1768191323 -r-------- 1 user0 group 65M 21 janv. 10:49 pulse-shm-2304859542 -r-------- 1 user0 group 129K 23 janv. 15:45 pulse-shm-4094535381

ps -fu user0 | grep pulse user0 13311 1 0 15:45 ? 00:00:00 /usr/bin/pulseaudio --start --log-target=syslog

Apparemment ce sont des fichiers qui ne s’effacent pas automatiquement car 15:45 j’ai envoyé la commande suivante :

merci

Bonjour,

La liste des fichiers pulse-shm à encore augmenter n’y a t-il pas un façon de restreindre cette génération ???