[solved] IO rausfinden prozess ja aber wie das Schreibziel ermitteln

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
moejoe
Beiträge: 13
Registriert: 29.10.2018 18:05:53

[solved] IO rausfinden prozess ja aber wie das Schreibziel ermitteln

Beitrag von moejoe » 24.02.2019 22:35:59

Hardware: raspberry v2
OS: Deabian Stretch

Morgen miteinander,

Ich wollte meinen RAS mal ein bisschen das Schreiben auf die SD-Karte einschränken.

Deswegen habe ich per iotop die Prozesse aufgespürt die IO verursachen mit folgenden Befehl:

Code: Alles auswählen

iotop -aok

Leider kann ich dadurch nicht ermitteln, wohin der Prozess schreibt. Habe nämlich auch einen USB Stick am RASpberry hängen.

Hat da jemand ne idee ?

grüsse moejoe
Zuletzt geändert von moejoe am 13.03.2019 12:39:23, insgesamt 2-mal geändert.

DeletedUserReAsG

Re: IO rausfinden prozess ja aber wie das Schreibziel ermitteln

Beitrag von DeletedUserReAsG » 24.02.2019 22:40:08

Debianatop kann sowas unter Anderem anzeigen.

OT: was ist ’n „RAS“ in diesem Kontext?

moejoe
Beiträge: 13
Registriert: 29.10.2018 18:05:53

Re: IO rausfinden prozess ja aber wie das Schreibziel ermitteln

Beitrag von moejoe » 24.02.2019 23:15:26

Code: Alles auswählen

Debianatop kann sowas unter Anderem anzeigen. 

OT: was ist ’n „RAS“ in diesem Kontext?
kann man mit atop auch sehen, auf welche Disk geschrieben wird ?

btw. hab die Abkürzung "RAS" entfernt um missverständnisse auszuräumen.

grüsse moejoe

DeletedUserReAsG

Re: IO rausfinden prozess ja aber wie das Schreibziel ermitteln

Beitrag von DeletedUserReAsG » 25.02.2019 06:53:40

moejoe hat geschrieben: ↑ zum Beitrag ↑
24.02.2019 23:15:26
kann man mit atop auch sehen, auf welche Disk geschrieben wird?
Das war die Frage, auf die ich geantwortet habe.

moejoe
Beiträge: 13
Registriert: 29.10.2018 18:05:53

Re: IO rausfinden prozess ja aber wie das Schreibziel ermitteln

Beitrag von moejoe » 25.02.2019 13:30:08

Hallo niemand,

danke für deine Hilfe
Das war die Frage, auf die ich geantwortet habe.
Ich sehe beim starten von atop (-d) nur rddsik und wrddisk und dsk , aber welche Devices das sind sehe ich nicht.

Da ich auch tmpfs im Einsatz habe, müsste ich schon wissen, ob das jetzt die Speicherkarte ist die belastet wird oder nicht.

grüsse

DeletedUserReAsG

Re: IO rausfinden prozess ja aber wie das Schreibziel ermitteln

Beitrag von DeletedUserReAsG » 25.02.2019 13:38:49

Code: Alles auswählen

DSK |           sda |  busy     88%  |  read     253 |  write   1135  | KiB/r     11  |  KiB/w    288  | MBr/s    0.3  |  MBw/s   32.0  | avio 6.24 ms  |
Ich denke schon, dass die gesuchte Info dabei ist.

moejoe
Beiträge: 13
Registriert: 29.10.2018 18:05:53

Re: IO rausfinden prozess ja aber wie das Schreibziel ermitteln

Beitrag von moejoe » 28.02.2019 00:10:03

ah ok jetzt seh ichs .. wahrscheinlich nicht gesehen weil es sehr selten angezeigt wird ( denke das ist ein gutes Zeichen)

muss mir das mit atop mal genauer anschauen


update: irgendwie krieg ich es trotzdem nicht hin, dass ich einen bestimmten Prozess dem Schreibvorgang genau bestimmen kann, obs es jetzt die Card oder der USB-Stick ist.
hast du ne idee ?
grüsse

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: IO rausfinden prozess ja aber wie das Schreibziel ermitteln

Beitrag von eggy » 28.02.2019 06:42:17

Wenn man den Prozess schon kennt: strace.

Benutzeravatar
MSfree
Beiträge: 10741
Registriert: 25.09.2007 19:59:30

Re: IO rausfinden prozess ja aber wie das Schreibziel ermitteln

Beitrag von MSfree » 28.02.2019 08:28:03

eggy hat geschrieben: ↑ zum Beitrag ↑
28.02.2019 06:42:17
Wenn man den Prozess schon kennt: strace.
strace produziert aber eine erschlagende Menge an Ausgaben. Da das passende rauszufiltern, ist einigermassen mühselig.

Ich würde erstmal lsof (steht für list open files) absetzen. Wenn der Prozeßname bekannt ist auch mit grep kompiniert:

Code: Alles auswählen

lsof | grep Prozeßname
Im großen und ganzen ist aber die Angst vor kaputt geschriebenen SD-Karten ziemlich unbegründet. Ich kaufe immer das billigste vom Billigen vom Grabbeltisch und ich habe noch nie mehr als 10 Euro für eine µSD-Karte ausgegeben. Jedenfalls habe ich noch nie eine kaputt geschrieben.

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: IO rausfinden prozess ja aber wie das Schreibziel ermitteln

Beitrag von eggy » 28.02.2019 09:15:44

MSfree hat geschrieben: ↑ zum Beitrag ↑
28.02.2019 08:28:03
strace produziert aber eine erschlagende Menge an Ausgaben. Da das passende rauszufiltern, ist einigermassen mühselig.
Mit den richtigen Schaltern kein Problem, nur ist strace halt nen Tool mit dem man sich mal mehr als zwei Minuten beschäftigen muss.
Aber es gibt ja auch noch grep. Wenn man nur wissen will, ob auf den Stick geschrieben wird, braucht man doch nur nach dem mountpoint vom Stick zu greppen. Klar ist das nur semivollständig, aber für ne erste Orientierung reichts. Für weiteres muss man sich dann halt mal genauer mit den strace Parametern auseinandersetzen.
lsof hilft halt nur bei offenen Dateien (korrigiert mich bitte, falls ich da irre), aber alles was in die Kategorie "Datei auf, schnell mal ne Zeile rein und Datei wieder zu" fällt sieht man nicht. Da ist strace der gründlichere Ansatz.

uname
Beiträge: 12072
Registriert: 03.06.2008 09:33:02

Re: IO rausfinden prozess ja aber wie das Schreibziel ermitteln

Beitrag von uname » 28.02.2019 16:17:22

Einfach erst mal den ganzen Prozess inkl. Unterprozesse in eine Datei bzw. leider mehrere Dateien schreiben:

Code: Alles auswählen

strace -ff -o out.txt -p 12345
(12345 wäre die PID, evtl. mit pstree -p ermitteln)
Und dann in out.txt.* suchen z. B. nach open, access, read, write, close, stat, ...

Code: Alles auswählen

fgrep read out.txt.*
https://de.wikipedia.org/wiki/Liste_der ... temaufrufe

moejoe
Beiträge: 13
Registriert: 29.10.2018 18:05:53

Re: IO rausfinden prozess ja aber wie das Schreibziel ermitteln

Beitrag von moejoe » 01.03.2019 01:11:34

@uname

kann man die dateien beim tracen irgendwie in eine zusammenfassen ?

habe 2679 Dateien im ordner.

edit: muss mir das mal alles genauer ansehen mit strace

danke vorerst ma

@eggy:
btw. was hast du gemeint mit grepen von dem mountpoint, wie mach ich das

grüsse

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: IO rausfinden prozess ja aber wie das Schreibziel ermitteln

Beitrag von eggy » 01.03.2019 05:48:48

Details in "man grep". Grundsätzlich: "grep was wodrin".
grep ist casesensitive, daher einfach gleich von Anfang an angewöhnen "grep was wodrin -i".
Angenommen der Stick ist nach /mnt/stick gemountet und das Prefix Deiner 2679 Dateien ist "datei", einfach "grep stick datei* -i".
Auch hier gilt, das Tool kann sehr viel mehr, tiefergehende Beschäftigung damit zahlt sich aus.

uname
Beiträge: 12072
Registriert: 03.06.2008 09:33:02

Re: IO rausfinden prozess ja aber wie das Schreibziel ermitteln

Beitrag von uname » 01.03.2019 12:11:34

moejoe hat geschrieben:kann man die dateien beim tracen irgendwie in eine zusammenfassen ?
Scheinbar wird alles nach stderr geschrieben. Versuche daher:

Code: Alles auswählen

strace -ff -p 12345 2>> out.txt

moejoe
Beiträge: 13
Registriert: 29.10.2018 18:05:53

Re: IO rausfinden prozess ja aber wie das Schreibziel ermitteln

Beitrag von moejoe » 02.03.2019 02:04:28

dnake für die antworten, ich muss die dateien mal übers we durchstöbern

grüsse

moejoe
Beiträge: 13
Registriert: 29.10.2018 18:05:53

Re: IO rausfinden prozess ja aber wie das Schreibziel ermitteln

Beitrag von moejoe » 12.03.2019 00:11:07

Habe jetzt mal per grep "read" die ganzen txt files durchsucht aber irgendwie bekomme ich nur sachen, die ich nicht verstehe.

Worauf muss ich achten ?

Hier mal ein Auszug:

Code: Alles auswählen

out.txt.5856:read(12, "\377\377V\372\254\377\377\16\37Nz\215;~<w\341!\307>o-\340\325L-\252\303g\341\355\370"..., 153) = 153
out.txt.5856:read(12, "\377\377\337\36", 4)          = 4
out.txt.5856:read(12, "\377\366\3777", 4)            = 4
out.txt.5856:read(12, "\377\375\357\372\254\377\377\277\374\377\237\230", 12) = 12
out.txt.5856:read(12, "\377\375\357\362", 4)         = 4
out.txt.5856:read(12, "\337\377w\337\233\366\377\5", 8) = 8
out.txt.5856:read(12, "\377\377\357\372\254\377\377\277\307\377\223\255", 12) = 12
out.txt.5856:read(12, "\377\377\343\306", 4)         = 4
out.txt.5856:read(12, "\323\377\357\21754U1\323O\0369S}5\374\201\7@2\344\275\n\253\232 \5\377", 56) = 28
out.txt.5856:read(12, "\357_sV\342K\247\310iS\350\240\1{XNk\262{\220\231\n\262\312\27\366\377\226", 28) = 28
out.txt.5856:read(12, "\377\375\357\372\254\377\377\277\374\377\237\230", 12) = 12
out.txt.5856:read(12, "\377\375\357\362", 4)         = 4
out.txt.5856:read(12, "\337\377w\337\373\366\377e", 8) = 8
out.txt.5887:read(12, "\377\377V\372\254\377\377\16\37N\250\376\213\30\27k\236_o\304\333\nE\26\365\234\355\353M\245\357\31"..., 153) = 37
out.txt.5887:read(12, "\324c6Z\5m\301\2448\\S\272\344\265\314D\224\315\361\330\335\362\3001\323\357\330\327\336\33!1"..., 116) = 116
out.txt.5887:read(12, "\377\377\337\36", 4)          = 4
out.txt.5887:read(12, "\377\366\3777", 4)            = 4
out.txt.5887:read(12, "\377\375\357\372\254\377\377\277\374\377\237\230", 12) = 12
out.txt.5887:read(12, "\377\375\357\362", 4)         = 4
out.txt.5887:read(12, "\337\377w\337\233\366\377\5", 8) = 8
out.txt.5887:read(12, "\377\377\357\372\254\377\377\277\307\377\223\255", 12) = 12
out.txt.5887:read(12, "\377\377\343\306", 4)         = 4
out.txt.5887:read(12, "\323\377\357GQ'\355\212\\\33\374ex [\312", 56) = 16
out.txt.5887:read(12, "\337\0\347)\265dC\307\225\4\321\377\357_sV\342K\247\310i\327n8\f\6*Gh\245[\333"..., 40) = 40
out.txt.5887:read(12, "\377\375\357\372\254\377\377\277\374\377\237\230", 12) = 12
out.txt.5887:read(12, "\377\375\357\362", 4)         = 4
out.txt.5887:read(12, "\337\377w\337\373\366\377e", 8) = 8
out.txt.5918:read(12, "\377\377V\372\254\377\377\16\37N\333h\333t8\300\260 \267\206\222", 153) = 21
out.txt.5918:read(12, "\227\257]a\207W\322\216b\325W\245e\314\305\200v\17\202\372\0025i\255\t\335I:\354\30\347\22"..., 132) = 132
out.txt.5918:read(12, "\377\377\337\36", 4)          = 4
out.txt.5918:read(12, "\377\366\3777", 4)            = 4
out.txt.5918:read(12, "\377\375\357\372\254\377\377\277\374\377\237\230", 12) = 12
out.txt.5918:read(12, "\377\375\357\362", 4)         = 4
out.txt.5918:read(12, "\337\377w\337\233\366\377\5", 8) = 8
out.txt.5918:read(12, "\377\377\357\372\254\377\377\277\307\377\223\255", 12) = 12
out.txt.5918:read(12, "\377\377\343\306", 4)         = 4
out.txt.5918:read(12, "\323\377\357GQ'\355\212\\\33\374\34;u\271~\227\251", 56) = 18
out.txt.5918:read(12, "%\30_\5\217\335\323k\306\377\357\0241#M\375l\22c\235\223p\216.\33^x\350\275\366\327i"..., 38) = 38
out.txt.5918:read(12, "\377\375\357\372\254\377\377\277\374\377\237\230", 12) = 12
out.txt.5918:read(12, "\377\375\357\362", 4)         = 4
out.txt.5918:read(12, "\337\377w\337\373\366\377e", 8) = 8
out.txt.5931:read(12, "\377\377V\372\254\377\377\16\37N\341\335\273\224\ve\6\6\360\274\307^\276a\253\0C\35\25\253c\300"..., 153) = 153
out.txt.5931:read(12, "\377\377\337\36", 4)          = 4
out.txt.5931:read(12, "\377\366\3777", 4)            = 4
out.txt.5931:read(12, "\377\375\357\372\254\377\377\277\374\377\237\230", 12) = 12
out.txt.5931:read(12, "\377\375\357\362", 4)         = 4
out.txt.5931:read(12, "\337\377s\337\233\366\377\1", 8) = 8

grüsse

moejoe
Beiträge: 13
Registriert: 29.10.2018 18:05:53

Re: IO rausfinden prozess ja aber wie das Schreibziel ermitteln

Beitrag von moejoe » 13.03.2019 12:38:26

Nach einiger Recherche ,
glaube das dass tool btrace besser geeignet ist um io auf der Disk festzustellen

Anbei ein Link: https://tunnelix.com/debugging-disk-iss ... vironment/

Aber ich habe meine IO's soweit ausgegrenzt, hatte noch fail2ban auf der Liste hab es aber desaktiviert und mein ssh zugang gehardet.

Und hier noch wie man kworker threads tracen kann: http://engineernabendu.blogspot.com/201 ... reads.html

Danke für die Hilfe von allen

grüsse moejoe
Zuletzt geändert von moejoe am 14.03.2019 12:50:38, insgesamt 2-mal geändert.

DeletedUserReAsG

Re: [solved] IO rausfinden prozess ja aber wie das Schreibziel ermitteln

Beitrag von DeletedUserReAsG » 13.03.2019 13:52:35

Hab in einem anderen Thread eine Ausgabe von iostat aus Debiansysstat gesehen. Könnte vielleicht in die Richtung gehen, die du haben willst.

moejoe
Beiträge: 13
Registriert: 29.10.2018 18:05:53

Re: [solved] IO rausfinden prozess ja aber wie das Schreibziel ermitteln

Beitrag von moejoe » 14.03.2019 12:35:22

was hält dich davon ab den thread hier zu verlinken ?

grüsse

DeletedUserReAsG

Re: [solved] IO rausfinden prozess ja aber wie das Schreibziel ermitteln

Beitrag von DeletedUserReAsG » 14.03.2019 13:15:30

Die Tatsache, dass ich ihn auch erstmal wieder suchen müsste. Die Suchfunktion ist für uns beide gleichschnell, und die weiterführenden Infos möchtest du – also kannst du bei Bedarf auch selbst suchen. Oder das Programm einfach mal angucken.

Antworten