iotop zeigt kswapd0 bei 99,99% mit 0% DISK READ und DISK WRITE

7

Ich habe eine schwere Postgres-Anfrage. Der Lauf dauert über zehn Minuten. Ich möchte meine Hardware aktualisieren, damit sie schneller läuft. Ich denke, mehr RAM wird helfen, aber mein Motherboard ist voll, also brauche ich ein ganz neues Motherboard. Ich möchte nicht investieren, wenn ich nicht weiß, dass ich bessere Ergebnisse erzielen werde. Folgendes sehe ich in iotop:

Total DISK READ: 46,81 M / s | Total DISK WRITE: 0,00 B / s
  TID PRIO USER DISK READ DISK WRITE SWAPIN IO> BEFEHL                                                                                                                                               
   27 be / 4 root 0,00 B / s 0,00 B / s 0,00% 99,99% [kswapd0]
 2514 be / 4 postgres 46,81 M / s 2,45 M / s 0,00% 18,36% postgres: postgres db1 127,0,0,1 (55328) SELECT
    1 be / 4 root 0,00 B / s 0,00 B / s 0,00% 0,00% init
    2 be / 4 root 0,00 B / s 0,00 B / s 0,00% 0,00% [kthreadd]
    3 be / 4 root 0,00 B / s 0,00 B / s 0,00% 0,00% [ksoftirqd / 0]
    4 be / 4 root 0,00 B / s 0,00 B / s 0,00% 0,00% [kworker / 0: 0]
    5 be / 4 root 0,00 B / s 0,00 B / s 0,00% 0,00% [kworker / u: 0]
    6 rt / 4 Wurzel 0,00 B / s 0,00 B / s 0,00% 0,00% [Migration / 0]
    7 RT / 4 Wurzel 0,00 B / s 0,00 B / s 0,00% 0,00% [Watchdog / 0]
    8 rt / 4 Wurzel 0,00 B / s 0,00 B / s 0,00% 0,00% [Migration / 1]
    9 be / 4 root 0,00 B / s 0,00 B / s 0,00% 0,00% [kworker / 1: 0]
   10 be / 4 root 0,00 B / s 0,00 B / s 0,00% 0,00% [ksoftirqd / 1]

Beachten Sie, wie der kswapd0 die Festplatte am meisten trifft (99,99% IO). DISK READ und DISK WRITE sowie SWAPIN von kswap0 sind jedoch alle Null. Was macht kswap0? Trifft es wirklich meine Festplatte? Würde das Hinzufügen von mehr RAM zu diesem System überhaupt helfen?

Benutzer1
quelle

Antworten:

2

Sie nähern sich dem aus dem falschen Blickwinkel. Erst nach der Optimierung Ihres SQL sollten Sie erwägen, mehr RAM / CPU / Festplatte (E / A-Bandbreite) auf das Problem zu werfen - und das Problem so zu beheben, wie Sie es identifiziert haben.

Zuerst fragen Postgres EXPLAIN(oder EXPLAIN ANALYZE) , wie es die Abfrage ausführt.
Optimieren Sie die immer liebenden Kätzchen daraus und untersuchen Sie dann, wenn Sie immer noch Leistungsprobleme haben, weiter, um festzustellen, wo der Engpass liegt ( sonassi hat Ihnen einige gute Vorschläge für Dinge gegeben, die Sie zusätzlich beachten sollteniotop ).

Wenn Sie Ihren Webstack und Ihre Datenbank auf demselben Server ausführen, ist jetzt ein guter Zeitpunkt, um sie ebenfalls aufzuteilen ...

voretaq7
quelle
0

Sind Sie zu 110% sicher, dass es keine Probleme mit Ihrem IO-Sub-System gibt - z. B. sind alle Festplatten in Ordnung [Smart / Raid-Selbsttest], der Rückschreib-Cache ist aktiviert [wenn Sie einen batteriegepufferten Cache auf der RAID-Karte haben]?

Sättigt Postgres das E / A nicht mit 48 MB / s Leseübertragung?

pQd
quelle
0

kswapd erledigt einen Teil der Arbeit, die für den Umgang mit dem virtuellen Speicher unter Linux erforderlich ist. Ein 100% iger Wert könnte also bedeuten, dass zu viel Arbeit geleistet wird, obwohl es auch sein kann, dass nur die Ressourcen Ihres PG-Prozesses knapp werden (z. B. kein RAM mehr für Puffer-E / A vorhanden ist).

Ich würde überprüfen, wie viel RAM mit den üblichen Werkzeugen verwendet / nicht verwendet wird.

In Bezug auf das Fehlen von Statistiken neben der E / A-Spalte für kswapd0 bin ich mir nicht sicher, ob die folgende Erklärung korrekt ist, aber es kann sein, dass der Kernel Swapin / Swapout im Kernel-Space nicht verfolgen kann (wo kswapd lebt), weil Linux dies einfach nicht tut Tauschen Sie alles gegen Seiten aus, die im Kernelbereich zugewiesen sind.

David Cournapeau
quelle
0

Sie haben keine anderen wichtigen Informationen für die Diagnose erwähnt.

free -m
cat /proc/meminfo
top -b

Es ist wahrscheinlich, dass die E / A von kswapdnur von der von pseudo gemeldet wird postgres. Einer der Prozesse wird wahrscheinlich im DStatus sein, aber alle Daten aus den obigen Befehlen würden dies bestätigen. Obwohl es merkwürdig ist, dass swapindas leer ist.

Ben Lessani - Sonassi
quelle