[Frage] Apache auf 7330: CPU Auslastung durch Prozess mtdblockd

SuPeRpLuS

Neuer User
Mitglied seit
15 Okt 2013
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,

ich hoffe ich bin hier im richtigen Forum gelandet und ihr könnt mir weiterhelfen.

Erst einmal das wesentliche zu der Umgebung:

Fritzbox 7330
Firmware 5.51
1x USB HDD (FAT32) und 1x USB Stick (EXT2)

Ich habe nun vor kurzem den Apache Server mit PHP5.4 und SQLite sowie die ownCloud (von ownCloud.org) auf dem USB-Stick installiert. Der Server läuft nun auch nachdem ich alle Rechte korrekt gesetzt habe und ich kann auf meine Cloud-Anwendung im lokalen Netzwerk zugreifen.

Nun zu dem eigentlichen Problem: dem Seitenaufbau. Der Abruf der Seiten dauert jeweils 1-3min!

Zum Hintergrund: zunächst hatte ich den Server auf der HDD installiert, hier war die CPU-Auslastung der FB beim Zugriff auf die Seiten bei 100% und nach wenigen Minuten ist sie abgestützt. Nun habe ich den Server zunächst auf einen älteren Stick umgezogen, das war schon etwas besser und sie ist nicht mehr abgestützt, war aber trotzdem sehr langsam. Nun habe ich nochmal einen neuen USB2.0 Stick mit hohen Schreib- und Leseraten genommen und siehe da - schon besser. Trotzdem dauert der Seitenaufbau noch zu lang (ca. 1min/Seite).

Nun habe ich über den top-Befehl während eines Seitenaufrufs einmal die Prozesse mitgeloggt (der Übersichtlichkeit hier nur mal ein Auszug):

=====================================================
Mem: 48956K used, 4228K free, 0K shrd, 432K buff, 7544K cached
CPU: 9.1% usr 84.9% sys 0.0% nic 0.0% idle 3.3% io 0.9% irq 1.6% sirq
Load average: 2.20 0.81 0.97 3/120 4011
PID PPID USER STAT VSZ %VSZ CPU %CPU COMMAND
88 2 root RW 0 0.0 0 26.2 [mtdblockd]
1364 1 root S 6052 11.3 0 7.8 telefon a127.0.0.1
4002 4001 root R N 3440 6.4 0 7.7 /sbin/smbd
1157 1 root S 13028 24.4 0 7.4 ctlmgr
4007 2642 boxusr98 D 11148 20.9 0 5.9 php-cgi
4005 3923 root R 1240 2.3 0 5.2 top -n 10
1401 1364 root D 4960 9.3 0 4.7 dect_manager
4009 2811 boxusr98 D 11708 22.0 0 3.7 php-cgi
1333 1 root R 4520 8.5 0 2.9 dsld -i -n
3278 3277 root S N 3248 6.1 0 2.2 /sbin/mount.davfs -o conf=/var/tmp
812 2 root DW 0 0.0 0 1.1 [usb-storage]
1161 1 root S 6112 11.4 0 0.8 upnpd
3266 1 root S N 3248 6.1 0 0.8 /sbin/mount.davfs -o conf=/var/tmp
803 802 root S 3104 5.8 0 0.8 dsl_control -i10_00_10_40_00_04_01
2476 1294 root D 1468 2.7 0 0.8 /sbin/chronyd -n -f /var/tmp/chron
1703 1 root S 2092 3.9 0 0.7 /usr/bin/aha
1153 2 root SW 0 0.0 0 0.7 [pmex_ne]
1151 2 root SW 0 0.0 0 0.5 [autbtex]
3 2 root SW 0 0.0 0 0.5 [ksoftirqd/0]
1342 1 root S 4368 8.2 0 0.3 pbd
=====================================================

Mir ist aufgefallen, dass immer kurz nach der Seitenabfrage der Prozess "[mtdblockd]" eine hohe CPU-Auslastung abfordert (i.d.R. zwischen 25 und 40%) - sobald die Seite aufgebaut ist, ist auch die Auslastung wieder weg. Zum Vergleich: der "php-cgi"-Prozess des Apache kommt auf max. 5-6%, der Samba auf max. 30%.

Ich habe bislang leider keine weitergehende Infos zu dem Prozess gefunden, vermute aufgrund des Namens aber einen Zusammenhang mit der FB-internen Firewall.

Frage: Hat hier jemand Erfahrungen und kann mir ggf. sagen ob/wie ich die Firewall konfigurieren muss damit der Server schneller läuft und die Zugriffe in vernünftiger Zeit ablaufen?

Schonmal vorab Danke für alle Antworten.

Gruß
 
Hallo

MTD steht für: Memory Technology Driver
Hat also eher was mit Speicher als wie mit der Firewall zu tun.
Du hast etwa 4MB freien Speicher, wenn der verbraucht ist wird das System unglaublich lahm.
(Und erklärt auch den Absturz der Box, ohne Speicher macht sie gerne einen reboot)
Eventuell bekommst du was wieder, indem du zusätzlichen Swapspeicher anlegst.
Besser wäre allerdings ein Firmware Mod wie freetz, wo du Programme externalisieren kannst.
Das würde bestimmt mehr Speicher bringen als die momentanen 4MB.

PS: Benutze selber den busybox httpd mit php-cgi und SqLite unterstützung.
Bei minutenlangen warten hätt ich das sofort wieder runtergeschmissen. ;)
 
Zuletzt bearbeitet:
hi koyaanisqatsi,

danke für die Antwort erstmal.

Also ich habe mal versuchshalber ein SWAP-File (mit 64MB) erstellt - das bringt ein paar MB mehr freien Speicher, scheint aber noch nicht der Durchbruch zu sein. Der MTDBLOCKD steigt immernoch auf >30% und der Seitenaufbau ist -wenn überhaupt- nur minimal schneller.

Gibt es noch andere Optionen um mehr Ressourcen freizugeben ohne direkt auf Freetz zu wechseln?

Danke!

EDIT: Ich rufe den Apache als boxusr98 auf - wäre es vielleicht besser ihn als root zu starten?
 
Zuletzt bearbeitet:
Als boxusr98, hm, glaub nicht das es als root besser läuft.
Ich starte meinen httpd als 2011:0 (boxusr11int).
 
Volldurchblick ist geschmeichelt, ich experimentiere nur gerne.
Den busybox httpd hab ich von hier in der Version 1.21 MIPS.
Meine Version von php-cgi hab ich von fritzmod.net (Danke Radislav).
Fest einkompiliert (hardgecodet) ist der Pfad zur php.ini: /tmp/flash/
Diese kann unter freetz mit modsave resetfest gemacht werden.
Der httpd braucht dann nurnoch die Anweisung /cgi-bin/php-cgi zu benutzen.
Das mach ich nicht direkt, sondern über ein Skript.

httpd.conf
Code:
*.php:/var/media/NEW_LINK/php.sh 	# run xxx.php through an interpreter

php.sh
Code:
#! /bin/sh
#env -i 'PATH=/bin:/usr/bin' # Nur dieses Environment verwenden (-u VARIABLENNAME entfernt einzelne)
env -u MOD_HTTPD_PASSWD -u ADDWEBIF_PARAS /var/media/NEW_LINK/cgi-bin/php-cgi $1
...weil man so viel gezielter die php-cgi und ihre Umgebung beeinflussen kann.
Bestimmt kann so auch mit dem Schalter -c /var/tmp/php.ini der Pfad zu eben dieser angegeben werden.
 
Zuletzt bearbeitet:
php.sh
Code:
#! /bin/sh
#env -i 'PATH=/bin:/usr/bin' # Nur dieses Environment verwenden (-u VARIABLENNAME entfernt einzelne)
env -u MOD_HTTPD_PASSWD -u ADDWEBIF_PARAS /var/media/NEW_LINK/cgi-bin/php-cgi [B][COLOR="#FF0000"]-c /var/media/NEW_LINK/php.ini[/COLOR][/B] $1
...so gehts:phpinfo_01.jpg...sagt auch: phpinfo()
 
Zuletzt bearbeitet:
Kostenlos!

Statistik des Forums

Themen
248,897
Beiträge
2,304,395
Mitglieder
378,588
Neuestes Mitglied
k3rp