Du bist nicht angemeldet.
Hallo,
unter Arch läuft bei mir ein Apache httpd. Das System ist auf /dev/sdb (SSD) installiert.
Es gibt eine interne HDD /dev/sda
Mit hdparm stelle ich die HDD nach einer gewissen Inaktivität aus. Das hat auch mal wunderbar funktioniert. Nun ist mir aber aufgefallen, dass es nicht mehr der Fall ist. Ich habe dann versucht herauszufinden, wer der Übeltäter ist. Es hat sich herausgestellt, dass wenn ich httpd stop, die HDD wieder nach einer gewissen Inaktivität aufhört zu drehen (wie gewollt).
httpd hat im Grunde nur eine Möglichkeit auf die hdd zuzugreifen und zwar über nextcloud. Sprich es läuft ein nextcloud server auf /dev/sdb und die daten liegen auf /dev/sda (Nur Daten, sonst nichts)
Kann mir jemand erklären, wie ich herausfinde, was httpd genau macht und ob es an nextcloud oder an etwas anderem liegt?
Ich habe es mit strace versucht
sudo strace -o /dev/stdout httpd | grep string
und mit mit cat /dev/stout angesehen, was kommt. Es kommt aber leider garnichts.
Freue mich über jegliche Tipps.
Offline
Weder httpd nocht Nextcloud arbeiten in der Regel mit Block Devices.
Daher ist es erst ein Mal wichtig zu wissen, welche Partitionen und Dateisysteme /dev/sda hat und wo diese eingehängt sind.
Dazu wären die Ausgaben von
$ lsblk
$ mount
$ cat /etc/fstab
interessant.
Hinzu kommt, dass Nextcloud nur eine Webanwendung ist, welche von einem Webserver geserved werden muss. Wenn das nicht httpd ist, wer dann?
Wenn es dann etwaige Anfragen an deine Nextcloud gibt, welche einen Dateizugriff erfordern, muss natürlich der zugrunde liegende Datenträger laufen.
In jedem Fall kannst du Dateizugriffe mittels lsof herausfinden und nach deinem Bedarf filtern.
Wenn dein primäres Ziel es ist, die Festplatte auszuschalten, solltest du damit natürlich auch solche Programme stoppen, welche ggf. auf die Festplatte zugreifen. Also in deinem Fall z.B. Nextcloud.
Wenn Nextcloud erreichbar sein soll und es auf eine Partition von /dev/sda zugreifen muss, dann darfst du halt nicht erwarten, dass in einem solchen Fall die Festplatte nicht anläuft.
Deine Frage liest sich ein bisschen so wie
Ich fahre viel Fahrrad um Sprit zu sparen.
Mit dem Auto fahre ich nur zur Arbeit.
Trotzdem muss ich hin und wieder tanken.
Wie finde ich heraus, welches Steuergerät für die Einspritzanlage verantwortlich ist?
Offline
stdout ist ein wenig speziell, lass strace doch in eine Datei z.B. unter /tmp oder /dev/shm schreiben, und nimm -t (timestamp) und -f (follow forks) mit dazu. Wenn du dann die genaue Zeit weißt wo die Platten aufdrehen, kannst du im strace schauen was zu dieser Zeit (unmittelbar davor) so in dem Programm (und seinen Unterprozessen) abgelaufen ist.
Alternativ gibts auch noch das gute alte /proc/sys/vm/block_dump, aber das produziert ewig viel Output, da laufen dir die Logs voll und jeder Zugriff aufs Log macht einen neuen block_dump event. ;-) Da muss man ein wenig Zerkonfigurieren um das sinnvoll über längere Zeit nutzen zu können.
Wenn es einen direkteren/komfortableren Weg gibt, den Wakeup-Event nachzuverfolgen, dann hab ich ihn noch nicht gefunden.
Bei mir ist es SMART, das die Platten aufweckt. Sehr ärgerlich. Braucht -n standby,q in der smartd.conf...
Offline
Nextcloud nutze ich nur intern, hier steht auch der Rechner dh. ich kann alle Rechner die auf nextcloud zugreifen wollen regulieren.
Die Festplatten will ich gerne ausschalten lassen, wenn niemand den Rechner an hat was zu mehr als 50% der Fall ist. Mir geht es auch nicht um die Energieeinsparung, sondern um die Lautstärke der HDD.
Den Output auf /tmp zu legen war eine gute Idee, da kommt was.. mal schaun ob was bei rum kommt... ich melde mich.
Beitrag geändert von vivusorg (23.10.2020 08:24:06)
Offline
Wenn die Lautstärke dein Problem ist, dann ist es vielleicht sinnvoller, die HDD gegen eine SSD zu tauschen. Wenn du mehrere PCs besitzt und einen Server 24/7 betreibst, sollte Geld für eine SSD ja nicht das Problem sein. Und ein Massenspeicher ist schneller getauscht, als ein Programm reverse-engineered.
Wenn trotz mangelnder Zugriffe auf die Webanwendung Nextcloud durch Clients, und das kannst du ja in dem Log des Webservers nachvollziehen, durch diese bedingt die Festplatten anlaufen, gibt es möglicherweise irgendwelche Cron Jobs, welche z.B. regelmäßig den Nextcloud Cache o.ä. aktualisieren.
Und du solltest dir nach obigen Angaben mal mit lsof /media angucken.
Offline
SSD ist dann schon etwas teuer.
sudo lsof /media
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
smbd 816 root cwd DIR 8,1 4096 2 /media
nextcloud habe ich in Maintenance true gesetzt, ändert nichts.
Stop'e ich httpd, fährt die HDD nach einer weile runter.
Crone Jobs habe ich selber kein aktiv eingerichtet.
Beitrag geändert von vivusorg (21.10.2020 17:01:09)
Offline
Stop'e ich httpd, fährt die HDD nach einer weile runter.
httpd greift auf die Platte zu. Du wirst dich wohl damit abfinden müssen, oder halt eine SSD verbauen, da gibt es auch schon günstige Modelle.
Offline
Es war aber doch bis vor ein paar Wochen nicht der Fall. Ich weiß allerdings nicht genau seit wann - leider.
Mit
sudo strace -t -f -o /tmp/httpd.log httpd | grep string
Zum start von httpd wird mehrfach auf /media zugegriffen, anschliessend aber nicht mehr.
Ist es möglich, dass man sich von den Zugriffen auf eine HDD einen log schreiben lässt?
Beitrag geändert von vivusorg (21.10.2020 11:08:20)
Offline
Es war aber doch bis vor ein paar Wochen nicht der Fall.
Der Reifen an meinem Auto war letzte Woche auch noch nicht platt.
Ist es möglich, dass man sich von den Zugriffen auf eine HDD einen log schreiben lässt?
So was hier?
https://wiki.archlinux.org/index.php/Audit_framework
Vermutlich irgendwas sinngemäß wie auditctl -w /media – Aber mangels Notwendigkeit nie mit auseinandergesetzt.
Offline