<?xml version="1.0" encoding="utf-8" standalone="yes"?><feed xmlns="http://www.w3.org/2005/Atom" xml:base="https://foundata.com/" xml:lang="de"><title>Free auf foundata</title><id>https://foundata.com/de/tags/free/feed-atom.xml</id><link rel="self" type="application/atom+xml" hreflang="de" href="https://foundata.com/de/tags/free/feed-atom.xml" title="atom"/><link rel="alternate" type="text/html" hreflang="de" href="https://foundata.com/de/tags/free/" title="html"/><link rel="alternate" type="application/rss+xml" hreflang="de" href="https://foundata.com/de/tags/free/feed-rss.xml" title="rss"/><link rel="alternate" type="application/atom+xml" hreflang="en" href="https://foundata.com/en/tags/free/feed-atom.xml" title="atom, English"/><link rel="alternate" type="text/html" hreflang="en" href="https://foundata.com/en/tags/free/feed-atom.xml" title="html, English"/><link rel="alternate" type="application/rss+xml" hreflang="en" href="https://foundata.com/en/tags/free/feed-atom.xml" title="rss, English"/><updated>2025-06-23T18:10:00Z</updated><author><name>foundata GmbH</name><email>webmaster@foundata.com</email><uri>https://foundata.com/</uri></author><rights>© 2023-2026, foundata GmbH (https://foundata.com)</rights><icon>https://foundata.com/images/feed-icon.67ff83c698af1511552374e80cf5f6ff26d497ef21f04186cf058859d535ca75.svg</icon><logo>https://foundata.com/images/feed-logo.9138f24a120dabc7e3d34003662131cc9c7f2ff153ec39d2f6dea3a48c35b4bf.svg</logo><entry><title type="html">Systemeinblicke mit Kommandozeilentools: free und vmstat</title><id>tag:foundata.com,2025-06-23:/de/blog/2025/systemeinblicke-kommandozeile-free-vmstat/</id><published>2025-06-23T18:10:00Z</published><updated>2025-06-23T18:10:00Z</updated><link href="https://foundata.com/de/blog/2025/systemeinblicke-kommandozeile-free-vmstat/?utm_source=feed-atom" rel="alternate" type="text/html"/><link href="https://foundata.com/en/blog/2025/system-insights-command-line-free-vmstat/?utm_source=feed-atom" rel="alternate" type="text/html" hreflang="en"/><link href="https://foundata.com/de/blog/2025/fsfe-reuse-lizenzverwaltung-open-source-tipps-spdx-sbom/?utm_source=feed-atom" rel="related" type="text/html" title="FSFE REUSE: Lizenz- und Quellenverwaltung für Software-Projekte. Eine Einführung für Open-Source-Entwickler, inklusive Tipps &amp; Tricks."/><link href="https://foundata.com/de/blog/2024/systemeinblicke-kommandozeile-lslogins-lsmod/?utm_source=feed-atom" rel="related" type="text/html" title="Systemeinblicke mit Kommandozeilentools: lslogins und lsmod"/><link href="https://foundata.com/de/blog/2024/systemeinblicke-kommandozeile-lsof-lsblk/?utm_source=feed-atom" rel="related" type="text/html" title="Systemeinblicke mit Kommandozeilentools: lsof und lsblk"/><link href="https://foundata.com/de/blog/2024/systemeinblicke-kommandozeile-dmidecode-lspci/?utm_source=feed-atom" rel="related" type="text/html" title="Systemeinblicke mit Kommandozeilentools: dmidecode und lspci"/><link href="https://foundata.com/de/blog/2024/systemeinblicke-kommandozeile-lscpu-lsusb/?utm_source=feed-atom" rel="related" type="text/html" title="Systemeinblicke mit Kommandozeilentools: lscpu und lsusb"/><author><name>Andreas Haerter</name><uri>https://andreashaerter.com/</uri></author><summary type="html">Ein Artikel, der die Befehlszeilen-Werkzeuge `free` und `vmstat` vorstellt.</summary><content type="html" xml:base="https://foundata.com/"><![CDATA[<p><em>Hinweis: Dieser Artikel erschien vorab in <a href="https://fedoramagazine.org/system-insights-with-command-line-tools-free-and-vmstat/" target="_blank" rel="noreferrer noopener">in englischer Sprache im Fedora Magazin</a>.</em></p>
<p>Im fünften Artikel der Serie &ldquo;<a href="https://foundata.com/de/blog/2024/systemeinblicke-kommandozeile-lscpu-lsusb/">Systemeinblicke</a> <a href="https://foundata.com/de/blog/2024/systemeinblicke-kommandozeile-dmidecode-lspci/">mit</a> <a href="https://foundata.com/de/blog/2024/systemeinblicke-kommandozeile-lsof-lsblk/">Kommandozeilen</a>-<a href="https://foundata.com/de/blog/2024/systemeinblicke-kommandozeile-lslogins-lsmod/">Tools</a>&rdquo; erkunden wir <code>free</code> und <code>vmstat</code>, zwei kleine Hilfsprogramme, die überraschend viel über die Gesundheit eines Linux-Systems verraten. <code>free</code> gibt einen sofortigen Überblick darüber, wie RAM und <a href="https://de.wikipedia.org/wiki/Swapping" target="_blank" rel="noreferrer noopener">Swap</a> verwendet werden. <code>vmstat</code> (der Virtual Memory Statistics Reporter) liefert eine Echtzeitansicht von Speicher-, CPU- und I/O-Aktivitäten.</p>
<p>Am Ende dieses Artikels lassen sich Puffer und Cache in &ldquo;Bewegungsraum&rdquo; übersetzen, die geheimnisvolle <code>available</code>-Spalte sicher interpretieren und Speicherlecks oder I/O-Sättigung erkennen.</p>
<h2 id="ein-kurzer-überblick-free" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#ein-kurzer-%c3%bcberblick-free" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="ein-kurzer-überblick-free">Ein kurzer Überblick: <code>free</code></a></h2><h3 id="nutzung" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#nutzung" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="nutzung">Nutzung</a></h3><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ free -h
</span></span><span class="line"><span class="cl">       total    used    free   shared  buff/cache  available
</span></span><span class="line"><span class="cl">Mem:    23Gi    14Gi   575Mi    3,3Gi        12Gi      8,8Gi
</span></span><span class="line"><span class="cl">Swap:  8,0Gi   6,6Gi   1,4Gi
</span></span></code></pre></div><p><code>free</code> parst <code>/proc/meminfo</code> und zeigt Gesamtwerte für physischen Speicher und Swap sowie Kernel-Puffer und Cache an. Nützliche Optionen sind <code>-h</code> für menschenlesbare Einheiten, <code>-s 1</code> für eine sekündliche Aktualisierung und <code>-c N</code> zum automatischen Stoppen nach <code>N</code> Stichproben. Letzteres ist besonders praktisch, um einen Trend zu verfolgen, während parallel andere Programme ausgeführt werden. Beispielsweise liefert <code>free -s 60 -c 1440</code> einen 24-Stunden-CSV-freundlichen Datensatz ohne Installation zusätzlicher Monitoring-Daemons oder Tools.</p>
<p><strong>Freier Speicher (<code>free</code>)</strong> bezieht sich auf RAM, der völlig unbelegt ist. Er wird weder von einem Prozess verwendet noch zum Zwischenspeichern. Bei Serversystemen wird dies oft als Verschwendung betrachtet, da ungenutzter Speicher nicht zur Leistung beiträgt. Idealerweise sollte diese Zahl niedrig bleiben, nachdem ein System eine Weile gelaufen ist.</p>
<p><strong>Verfügbarer Speicher (<code>available</code>)</strong> hingegen stellt eine Schätzung dar, wie viel Speicher von neuen oder laufenden Prozessen verwendet werden kann, ohne auf Swap (also die Auslagerungsdatei oder -partition) zurückgreifen zu müssen. Dies umfasst freien Speicher plus Teile des Caches und der Puffer, die das System bei Bedarf schnell zurückgewinnen kann.</p>
<p>Im Wesentlichen liegt der Unterschied in Linux hier: <em>freier</em> Speicher ist untätig und ungenutzt, während <em>verfügbarer</em> Speicher sowohl wirklich freien Platz als auch Speicher umfasst, der leicht freigegeben werden kann, um das System reaktionsfähig zu halten, ohne zu swappen / auszulagern. <strong>Es ist kein Problem, wenig freien Speicher zu haben; verfügbarer Speicher ist normalerweise das, worüber man sich Sorgen machen sollte.</strong></p>
<p>Ein gesundes System könnte sogar <code>used</code> ≈ <code>total</code> zeigen und dennoch bleibt <code>available</code> groß; dies spiegelt hauptsächlich den Cache bei der Arbeit wider. Der Linux-Kernel wird automatisch saubere Cache-Seiten verwerfen, wann immer eine Anwendung den Platz benötigt, sodass zwischengespeicherter Speicher nicht verschwendet ist. Dies lässt sich als „working set“ betrachten, welches nur noch nicht neu zugewiesen wurde.</p>
<h3 id="probleme-mit-free-erkennen" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#probleme-mit-free-erkennen" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="probleme-mit-free-erkennen">Probleme mit <code>free</code> erkennen</a></h3><ul>
<li><strong>Schnell schrumpfendes <code>available</code> kombiniert mit steigendem <code>swap used</code></strong> deutet auf echten Speicherdruck hin.</li>
<li><strong>Große Swap-In/Out-Spitzen</strong> weisen auf thrashing-Arbeitslasten oder außer Kontrolle geratene Speicherverbraucher hin.</li>
</ul>
<h2 id="vmstat--virtual-memory-statistics-melden" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#vmstat--virtual-memory-statistics-melden" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="vmstat--virtual-memory-statistics-melden"><code>vmstat</code> – Virtual Memory Statistics melden</a></h2><p><code>vmstat</code> (Virtual Memory Statistics) zeigt Prozesse, Speicher, Paging, Block-I/O, Interrupts, Context-Switches und CPU-Auslastung in einer einzigen Zeile an. Mit einem Intervall und einer Anzahl ausgeführt lassen sich Trends beobachten (die unten gezeigte Ausgabe wurde zur besseren Lesbarkeit in drei Abschnitte aufgeteilt):</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ vmstat <span class="m">1</span> <span class="m">3</span>
</span></span><span class="line"><span class="cl">procs -----------memory----------
</span></span><span class="line"><span class="cl"> r  b   swpd   free   buff  cache
</span></span><span class="line"><span class="cl"> <span class="m">2</span>  <span class="m">0</span> <span class="m">7102404</span> <span class="m">1392528</span>     <span class="m">36</span> <span class="m">12335148</span>
</span></span><span class="line"><span class="cl"> <span class="m">0</span>  <span class="m">0</span> <span class="m">7102404</span> <span class="m">1392560</span>     <span class="m">36</span> <span class="m">12335188</span>
</span></span><span class="line"><span class="cl"> <span class="m">0</span>  <span class="m">0</span> <span class="m">7102404</span> <span class="m">1373640</span>     <span class="m">36</span> <span class="m">12349928</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"> ---swap-- -----io----
</span></span><span class="line"><span class="cl">  si   so    bi    bo
</span></span><span class="line"><span class="cl">   <span class="m">8</span>   <span class="m">21</span>   <span class="m">130</span>   <span class="m">724</span>
</span></span><span class="line"><span class="cl">   <span class="m">0</span>    <span class="m">0</span>     <span class="m">0</span>     <span class="m">0</span>
</span></span><span class="line"><span class="cl">   <span class="m">0</span>    <span class="m">0</span>     <span class="m">8</span>    <span class="m">48</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"> -system-- -------cpu-------
</span></span><span class="line"><span class="cl"> in     cs us sy id wa st gu
</span></span><span class="line"><span class="cl"> <span class="m">2851</span>   <span class="m">19</span> <span class="m">15</span>  <span class="m">7</span> <span class="m">77</span>  <span class="m">0</span>  <span class="m">0</span>  <span class="m">0</span>
</span></span><span class="line"><span class="cl"> <span class="m">5779</span> <span class="m">7246</span> <span class="m">14</span> <span class="m">10</span> <span class="m">77</span>  <span class="m">0</span>  <span class="m">0</span>  <span class="m">0</span>
</span></span><span class="line"><span class="cl"> <span class="m">5141</span> <span class="m">6525</span> <span class="m">12</span>  <span class="m">9</span> <span class="m">79</span>  <span class="m">0</span>  <span class="m">0</span>  <span class="m">0</span>
</span></span></code></pre></div><h3 id="erklärung-der-ausgabe" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#erkl%c3%a4rung-der-ausgabe" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="erklärung-der-ausgabe">Erklärung der Ausgabe</a></h3><p>Aus der <code>vmstat(8)</code> Manpage:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Procs
</span></span><span class="line"><span class="cl">    r: The number of runnable processes (running or waiting
</span></span><span class="line"><span class="cl">       for run time).
</span></span><span class="line"><span class="cl">    b: The number of processes blocked waiting for I/O to
</span></span><span class="line"><span class="cl">       complete.
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Memory
</span></span><span class="line"><span class="cl">    These are affected by the --unit option.
</span></span><span class="line"><span class="cl">    swpd: the amount of swap memory used.
</span></span><span class="line"><span class="cl">    free: the amount of idle memory.
</span></span><span class="line"><span class="cl">    buff: the amount of memory used as buffers.
</span></span><span class="line"><span class="cl">    cache: the amount of memory used as cache.
</span></span><span class="line"><span class="cl">    inact: the amount of inactive memory.  (-a option)
</span></span><span class="line"><span class="cl">    active: the amount of active memory.  (-a option)
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Swap
</span></span><span class="line"><span class="cl">    These are affected by the --unit option.
</span></span><span class="line"><span class="cl">    si: Amount of memory swapped in from disk (/s).
</span></span><span class="line"><span class="cl">    so: Amount of memory swapped to disk (/s).
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">IO
</span></span><span class="line"><span class="cl">    bi: Kibibyte received from a block device (KiB/s).
</span></span><span class="line"><span class="cl">    bo: Kibibyte sent to a block device (KiB/s).
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">System
</span></span><span class="line"><span class="cl">    in: The number of interrupts per second, including
</span></span><span class="line"><span class="cl">        the clock.
</span></span><span class="line"><span class="cl">    cs: The number of context switches per second.
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">CPU
</span></span><span class="line"><span class="cl">    These are percentages of total CPU time.
</span></span><span class="line"><span class="cl">    us: Time spent running non-kernel code.  (user time,
</span></span><span class="line"><span class="cl">        including nice time)
</span></span><span class="line"><span class="cl">    sy: Time spent running kernel code.  (system time)
</span></span><span class="line"><span class="cl">    id: Time spent idle.  Prior to Linux 2.5.41, this
</span></span><span class="line"><span class="cl">        includes IO-wait time.
</span></span><span class="line"><span class="cl">    wa: Time spent waiting for IO.  Prior to Linux 2.5.41,
</span></span><span class="line"><span class="cl">        included in idle.
</span></span><span class="line"><span class="cl">    st: Time stolen from a virtual machine.  Prior to
</span></span><span class="line"><span class="cl">        Linux 2.6.11, unknown.
</span></span><span class="line"><span class="cl">    gu: Time spent running KVM guest code (guest time,
</span></span><span class="line"><span class="cl">        including guest nice).
</span></span></code></pre></div><h3 id="praktische-diagnose" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#praktische-diagnose" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="praktische-diagnose">Praktische Diagnose</a></h3><table>
  <thead>
      <tr>
          <th>Bereich</th>
          <th>Wichtige Felder</th>
          <th>Worauf zu achten ist</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Procs</td>
          <td><code>r</code> (Run-Queue),<br><code>b</code> (blocked)</td>
          <td><code>r</code> &gt; CPU-Kerne = Konkurrenz um die gleichen Kerne</td>
      </tr>
      <tr>
          <td>Memory</td>
          <td><code>swpd</code>, <code>free</code>, <code>buff</code>, <code>cache</code></td>
          <td>Steigendes <code>swpd</code> mit fallendem <code>free</code> = Druck</td>
      </tr>
      <tr>
          <td>Swap</td>
          <td><code>si</code>, <code>so</code></td>
          <td><code>so</code> ungleich Null bedeutet, dass der Kernel auslagert (swapped)</td>
      </tr>
      <tr>
          <td>IO</td>
          <td><code>bi</code>, <code>bo</code></td>
          <td>Hohes <code>bo</code> + hohes <code>wa</code> deutet auf schreiblastige Arbeitslasten hin</td>
      </tr>
      <tr>
          <td>System</td>
          <td><code>in</code>, <code>cs</code></td>
          <td>Plötzliche Spitzen deuten auf Interrupt-Stürme hin</td>
      </tr>
      <tr>
          <td>CPU</td>
          <td><code>us</code>, <code>sy</code>, <code>id</code>, <code>wa</code>, <code>st</code></td>
          <td>Hohes <code>wa</code> (I/O-Wait) = Storage-Engpass</td>
      </tr>
  </tbody>
</table>
<h4 id="ein-speicherleck-memory-leak-entdecken" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#ein-speicherleck-memory-leak-entdecken" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="ein-speicherleck-memory-leak-entdecken">Ein Speicherleck (Memory Leak) entdecken</a></h4><p>Man führt <code>vmstat 500</code> in einem Terminal aus, während die verdächtige Anwendung in einem weiteren Terminal läuft. Wenn <code>free</code> kontinuierlich fällt und <code>si</code>/<code>so</code> in aufeinanderfolgende Stichproben steigen, geht der physisches RAM zur Neige und der Kernel beginnt zu auszulagern (swappen). Dies ist ein klassisches Memory-Leak-Verhalten.</p>
<h4 id="io-sättigung-feststellen" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#io-s%c3%a4ttigung-feststellen" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="io-sättigung-feststellen">I/O-Sättigung feststellen</a></h4><p>Wenn <code>wa</code> (CPU-Wait) und <code>bo</code> (Blocks Out) in die Höhe schießen, während <code>r</code> auf niedrigen Werten verbleibt, ist die CPU untätig, wartet jedoch auf den Storage. Schnellerer Speicher (z.B. SDD statt Festplatte) oder das Tuning der I/O-Scheduler-Parameter sollten in Betracht gezogen werden.</p>
<h4 id="cpu-überbuchung-over-commit-erkennen" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#cpu-%c3%bcberbuchung-over-commit-erkennen" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="cpu-überbuchung-over-commit-erkennen">CPU-Überbuchung (over-commit) erkennen</a></h4><p>Ein anhaltendes <code>r</code>, das doppelt so hoch wie die Anzahl der logischen Kerne ist, in Kombination mit niedrigem <code>wa</code> und viel <code>free</code> bedeutet, dass die CPU der Engpass ist, nicht Arbeitsspeicher oder I/O. <code>top</code> oder <code>htop</code> helfen dabei, Prozesse zu lokalisieren die für die hohe Last sorgen. So kann man die Arbeitslasten entsprechend verlagern oder anderweitig skalieren.</p>
<h2 id="fazit" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#fazit" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="fazit">Fazit</a></h2><p>Die Beherrschung von <code>free</code> und <code>vmstat</code> bietet einen Einblick in Speicherverwendung, Swap-Aktivität, I/O-Latenz und CPU-Last. Für alltägliches Debugging empfiehlt sich: Zunächst mit <code>free</code> prüfen, ob dem System wirklich der Speicher ausgeht, dann <code>vmstat</code> verwenden, um den Grund zu enthüllen, seien es Speicherlecks, Storage-Engpässe oder CPU-Sättigung.</p>
<p>Der nächste Teil unserer Serie &ldquo;System-Einblicke mit Kommandozeilen-Tools&rdquo; folgt bald – frohes Linux-Troubleshooting!</p>
]]></content><category scheme="taxonomy:tags" term="toolbox" label="toolbox"/><category scheme="taxonomy:tags" term="free" label="free"/><category scheme="taxonomy:tags" term="vmstat" label="vmstat"/></entry></feed>