[Eisfair] slims zieh?==?utf-8?Q?t 100% Prozessorlast
Rene Hanke
Rene.Hanke at gmx.net
Mi Aug 17 09:26:11 CEST 2016
Hallo!
Endlich Zeit für mehr Tests gefunden. Sollte hier zwischendurch was auf
Englisch stehen, liegt das daran, dass ich parallel mit Michael Herger
im englischen Forum nach einer Lösung suche.
Die derzeit installierten Pakete finden sich unten[1]. mysqueezebox.com
login wurde gesetzt und die plugins SuperDateTime und UPnP/DLNA
deaktiviert. Nach jedem Experiment wurden alle slimserver-Prozesse
mittels kill beendet und LMS nach den Veränderungen an der
/etc/init.d/slims mittels "/etc/init.d/slims start" gestartet.
- - - - - - - - - - - - - -
1. unmodifizierte /etc/init.d/slims:
if [ "${START_SLIMS}" = "yes" ]
then
# set variable to an empty string if not set
if [ "${SLIMS_OPTIONS+1}" = "" ]
then
SLIMS_OPTIONS=''
fi
[...]
cd ${ssdir}/
su - slims -s /bin/sh -c "export LANG=${def_charset}; \
${ssdir}/slimserver.pl --daemon
--logdir=${logdir} --prefsdir=${prefsdir} \
${prefsoption}
--pidfile=${pidfile} --logfile=${logfile} ${SLIMS_OPTIONS} \
--noimage --novideo" >>
${startlogfile} 2>> ${startlogfile}
ps ax | grep slims
4627 ? RNs 0:14 /usr/bin/perl
/usr/local/slimserver/slimserver.pl --daemon --logdir=/var/slims/log
--prefsdir=/var/slims/prefs --pidfile=/var/run/slimserver.pid
--logfile=/var/slims/log/slimserver.log --noimage --novideo
4668 pts/1 SN+ 0:00 /bin/sh /bin/grep slims
Processor load 100%
- - - - - - - - - - - - - -
2. modifizierte /etc/init.d/slims wie von Michael Herger vorgeschlagen:
if [ "${START_SLIMS}" = "yes" ]
then
# set variable to an empty string if not set
if [ "${SLIMS_OPTIONS+1}" = "1" ]
then
SLIMS_OPTIONS=''
fi
[...]
cd ${ssdir}/
su - slims -s /bin/sh -c "export LANG=${def_charset}; \
${ssdir}/slimserver.pl --daemon
--logdir=${logdir} --prefsdir=${prefsdir} \
${prefsoption}
--pidfile=${pidfile} --logfile=${logfile} ${SLIMS_OPTIONS} \
--noimage --novideo" >>
${startlogfile} 2>> ${startlogfile}
ps ax | grep slims
4767 ? RNs 0:18 /usr/bin/perl
/usr/local/slimserver/slimserver.pl --daemon --logdir=/var/slims/log
--prefsdir=/var/slims/prefs --pidfile=/var/run/slimserver.pid
--logfile=/var/slims/log/slimserver.log --noimage --novideo
4808 pts/1 SN+ 0:00 /bin/sh /bin/grep slims
Processor load 100%
- - - - - - - - - - - - - -
3. Der "Dreckige Workaround" von mir:
if [ "${START_SLIMS}" = "yes" ]
then
# set variable to an empty string if not set
if [ "${SLIMS_OPTIONS+1}" = "" ]
then
SLIMS_OPTIONS=''
fi
[...]
cd ${ssdir}/
su - slims -s /bin/sh -c "export LANG=${def_charset}; \
${ssdir}/slimserver.pl --daemon
--logdir=${logdir} --prefsdir=${prefsdir} \
${prefsoption}
--pidfile=${pidfile} --logfile=${logfile} ${SLIMS_OPTIONS} \
--noimage --novideo" >>
${startlogfile} 2>> ${startlogfile}
# Restart to avoid um 100% CPU-usage
sleep 10
curl -silent -X POST -d
'{"id":0,"params":["",["restartserver"]],"method":"slim.request"}'
http://localhost:9000/jsonrpc.js
ps ax | grep slims
5090 ? SNs 0:20 /usr/bin/perl
/usr/local/slimserver/slimserver.pl /usr/local/slimserver/slimserver.pl
--logdir=/var/slims/log --prefsdir=/var/slims/prefs
--pidfile=/var/run/slimserver.pid
--logfile=/var/slims/log/slimserver.log --noimage --novideo
5133 pts/1 SN+ 0:00 /bin/sh /bin/grep slims
(doppeltes "slimserver.pl" aber kein "--daemon" mehr)
Processor load unter 2%
- - - - - - - - - - - - - -
4. Modifizierte /etc/init.d/slims ohne option "--daemon", stattdessen
senden des Prozesses in den Hintergrund.
@Juergen: Das Skript kehrt hier im Gegensatz zu den anderen Versionen
nahezu sofortig zum command prompt zurück, vielleicht benötigt es hier
irgendwo ein "sleep", um Kollisionen mit anderen Befehlen zu vermeiden?
if [ "${START_SLIMS}" = "yes" ]
then
# set variable to an empty string if not set
if [ "${SLIMS_OPTIONS+1}" = "" ]
then
SLIMS_OPTIONS=''
fi
[...]
cd ${ssdir}/
su - slims -s /bin/sh -c "export LANG=${def_charset}; \
${ssdir}/slimserver.pl
--logdir=${logdir} --prefsdir=${prefsdir} \
${prefsoption}
--pidfile=${pidfile} --logfile=${logfile} ${SLIMS_OPTIONS} \
--noimage --novideo" >>
${startlogfile} 2>> ${startlogfile} &
ps ax | grep slims
5245 pts/0 SN 0:00 su - slims -s /bin/sh -c export
LANG=de_DE.utf-8;
/usr/local/slimserver/slimserver.pl --logdir=/var/slims/log
--prefsdir=/var/slims/prefs
--pidfile=/var/run/slimserver.pid
--logfile=/var/slims/log/slimserver.log
--noimage --novideo
5254 ? SNs 0:00 -sh -c export LANG=de_DE.utf-8;
/usr/local/slimserver/slimserver.pl
--logdir=/var/slims/log --prefsdir=/var/slims/prefs
--pidfile=/var/run/slimserver.pid
--logfile=/var/slims/log/slimserver.log
--noimage --novideo
5271 ? SN 0:11 /usr/bin/perl
/usr/local/slimserver/slimserver.pl --logdir=/var/slims/log
--prefsdir=/var/slims/prefs --pidfile=/var/run/slimserver.pid
--logfile=/var/slims/log/slimserver.log --noimage --novideo
5305 pts/1 SN+ 0:00 /bin/sh /bin/grep slims
Wenn ich sämtliche zusätzlichen Leerzeichen im "su"-Befehl entferne,
wird das natürlich lesbarer:
6172 pts/0 SN 0:00 su - slims -s /bin/sh -c export
LANG=de_DE.utf-8; /usr/local/slimserver/slimserver.pl
--logdir=/var/slims/log --prefsdir=/var/slims/prefs
--pidfile=/var/run/slimserver.pid
--logfile=/var/slims/log/slimserver.log --noimage --novideo
6181 ? SNs 0:00 -sh -c export LANG=de_DE.utf-8;
/usr/local/slimserver/slimserver.pl --logdir=/var/slims/log
--prefsdir=/var/slims/prefs --pidfile=/var/run/slimserver.pid
--logfile=/var/slims/log/slimserver.log --noimage --novideo
6198 ? RN 0:07 /usr/bin/perl
/usr/local/slimserver/slimserver.pl --logdir=/var/slims/log
--prefsdir=/var/slims/prefs --pidfile=/var/run/slimserver.pid
--logfile=/var/slims/log/slimserver.log --noimage --novideo
6232 pts/1 SN+ 0:00 /bin/sh /bin/grep slims
(trotz der beiden zusätzlichen slimserver-Prozesse wird der LMS immer
noch korrekt und vollständig mittels "/etc/init.d/slims stop" beendet)
Processor load unter 2%
- - - - - - - - - - - - - -
Ich habe auch Michaels Vorschlag one *sämtliche* extra Leerzeichen
versucht, das bringt aber nichts.
Also sind meine unqualifizierten 2 Cent, dass es da wirklich einen
Fehler in der "--daemon" option des LMS gibt, zumindest im verwendeten
build. Ich bin aber nicht bewandert genug, um in die Tiefen der
slimserver.pl einzusteigen.
Liebe Grüße
René
- - - - - - - - - - - - - -
[1] List of currently installed packages
1. base
base 2.7.4
2016-06-11
2. crack-dict-small
security 2.2.0
2013-08-30
3. eiskernel
base 2.22.0
2016-06-13
4. eiskernel-smp
base 2.22.0
2016-06-13
5. geoip
netservices 2.6.1
2016-07-10
6. lame
multimedia 2.6.0
2016-05-23
7. libcares
lib 2.6.0
2015-05-06
8. libcurl
lib 2.6.6
2016-05-05
9. libdb
database 2.6.1
2015-05-03
10. libevent
lib 2.6.0
2015-05-06
11. libexif
lib 2.6.0
2015-06-07
12. libexpat
lib 2.6.0
2015-05-06
13. libfontconfig
lib 2.6.1
2016-05-21
14. libfreetype2
lib 2.6.1
2016-05-21
15. libgd
lib 2.6.3
2016-06-24
16. libgdbm
database 2.6.0
2015-05-06
17. libgif
lib 2.6.1
2015-10-12
18. libgmp
lib 2.6.0
2015-04-19
19. libjbig
lib 2.6.0
2015-04-27
20. libjpeg
lib 2.6.1
2016-05-05
21. libkrb5
lib 2.6.1
2015-12-06
22. libmetalink
lib 2.6.1
2016-02-13
23. libmysql
lib 2.8.1
2016-02-27
24. libpng
lib 2.6.2
2016-05-05
25. libpq-5
lib 1.4.4
2013-03-03
26. librtmp
lib 2.6.3
2016-02-15
27. libssh2
lib 2.6.2
2016-03-04
28. libssl
lib 2.6.9
2016-05-07
29. libtidyp
lib 2.6.0
2015-05-06
30. libtiff
lib 2.6.2
2016-05-05
31. libvpx
lib 2.6.1
2016-06-18
32. perl
plang 2.6.1
2015-05-17
33. perl_addons_01
plang 2.6.3
2016-03-05
34. perl_addons_02
plang 2.6.1
2016-03-05
35. perl_addons_03
plang 2.6.1
2015-06-07
36. rsync
netutils 1.1.5
2014-10-01
37. slims
netservices 1.2.7
2015-06-07
Mehr Informationen über die Mailingliste Eisfair