English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
tmpfs ist ein Linux/Eine auf dem Speicher basierende Dateisystem auf Unix-Systemen, d.h. tmpfs verwendet den Speicher oder den Swap-Bereich, um Dateien zu speichern.
Der VM-Subsystem im Linux-Kern ist verantwortlich für die Verwaltung der virtuellen Speicherressourcen im Hintergrund, d.h. des Virtuellen Speichers (RAM) und der Swap-Ressourcen, und bewegt die RAM-Seiten transparent in den Auslagerungsbereich oder von dort in die RAM-Seiten. Der tmpfs-Dateisystem benötigt Seiten des VM-Subsystems, um Dateien zu speichern. tmpfs kennt nicht, ob diese Seiten im Auslagerungsbereich oder in der RAM sind; diese Entscheidung fällt in die Verantwortung des VM-Subsystems. Was tmpfs weiß, ist, dass es eine Form des virtuellen Speichers verwendet.
Da tmpfs auf dem Speicher basiert, ist die Geschwindigkeit relativ hoch. Außerdem sind die VM-Ressourcen, die tmpfs verwendet, dynamisch, wenn Dateien im tmpfs gelöscht werden, reduziert der tmpfs-Dateisystemtreiber dynamisch die Größe des Dateisystems und löst VM-Ressourcen frei, natürlich werden auch VM-Ressourcen dynamisch zugewiesen, wenn Dateien im tmpfs erstellt werden. Außerdem hat tmpfs keine Persistenz, die Daten werden nach dem Neustart nicht beibehalten.
/dev/shm ist ein auf tmpfs basierendes Gerät, in einigen Linux-Distributionen /dev/shm ist /run/shm/ Eine symbolische Verknüpfung des Verzeichnisses. Tatsächlich gibt es in vielen Systemen /run wird als tmpsf gemounted. Mit df -T Sie können die Diskmounts im System ansehen:
Dateisystem 1K-Block 已用 可用 已用% 挂载点 udev 1859684 4 1859680 1% /dev tmpfs 374096 1524 372572 1% /run /dev/sda8 76561456 36029540 36619724 50% / none 4 0 4 0% /sys/fs/cgroup none 5120 0 5120 0% /run/lock none 1870460 27688 1842772 2% /run/shm none 102400 56 102344 1% /run/user
Lassen Sie uns also zunächst über /Das run-Verzeichnis. Wir wissen jetzt, dass dieses Verzeichnis auf dem Speicher basiert, tatsächlich ist sein Vorgänger /var/Das run-Verzeichnis, das später /run ersetzen. Dies ist weil /var/Der run-Dateisystem ist nicht sofort nach dem Start des Systems bereit, sondern bereits gestartete Prozesse speichern zunächst ihre Laufzeitinformationen in /in dev/dev ist ebenfalls eine tmpfs und ist sofort nach dem Systemstart verfügbar. Aber /dev wurde ursprünglich entwickelt, um Device-Dateien zu speichern, nicht um Informationen über den Laufzeitstatus von Prozessen zu speichern, daher, um Verwirrung zu vermeiden,/Dateien, die Prozessinformationen im dev speichern, beginnen alle mit ".", das bedeutet, dass es sich um versteckte Ordner handelt. Aber selbst dann, wenn die Anzahl der Ordner zunimmt,/dev wird immer unübersichtlicher, daher wurde ein Ersatz eingeführt, nämlich /run. Tatsächlich gibt es in vielen Systemen /var/Das run-Verzeichnis existiert immer noch, aber es ist /Eine symbolische Verknüpfung des run-Verzeichnisses.
/var/Der run-Verzeichnis enthält hauptsächlich Dateien, die seit dem Start des Systems Systeminformationen beschreiben. Ein häufiger Gebrauch ist, dass der Daemon-Prozess seinen pid in dieses Verzeichnis speichert.
/dev/shm/ Dies ist ein sehr nützlicher Verzeichnis unter Linux, der die Bedeutung Shared memory hat, das bedeutet gemeinsam genutztes Speicher. Da es im Speicher liegt, können alle Systemprozesse dieses Verzeichnis teilen. Standardmäßig beträgt seine Größe die Hälfte des Speichers. Wenn Sie die Größe ändern möchten, können Sie mount verwenden, um dies zu verwalten:
mount -o size=4000M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm
Wenn Sie eine dauerhafte Wirkung erzielen möchten, können Sie /etc/fstab-Datei:
tmpfs /dev/shm tmpfs defaults,size=4G 0 0
Mit /dev/shm kann viele Dinge tun, hier ist ein Beispiel für eine Anwendung von Python. Wenn Sie mit Python Daten verarbeiten, könnten Sie numpy verwenden, normalerweise sind die Datenmengen bei der Datenverarbeitung groß. Wenn mehrere Prozesse die gleiche Datenmenge benötigen /dev/shm wird eingesetzt, das ist die Technik der gemeinsamen Speicher. Python hat eine Drittanbieterbibliothek, die verwendet werden kann, um numpy-Arrays zwischen mehreren Prozessen zu teilen, nämlich SharedArray. SharedArray basiert auf /dev/shm ist und verwendet POSIX-Standard, was die Kompatibilität mit mehreren Plattformen ermöglicht.
Zusammenfassung
Das ist der Abschluss dieses Artikels. Wir hoffen, dass der Inhalt dieses Artikels Ihnen bei Ihrem Lernen oder Ihrer Arbeit hilft. Wenn Sie Fragen haben, können Sie Kommentare hinterlassen und sich austauschen. Vielen Dank für Ihre Unterstützung des Shouting-Tutorials.
Erklärung: Der Inhalt dieses Artikels wurde aus dem Internet entnommen und gehört dem Urheberrechtlichem Eigentümer. Der Inhalt wurde von Internetbenutzern freiwillig beigesteuert und hochgeladen. Diese Website besitzt keine Eigentumsrechte und hat den Inhalt nicht manuell bearbeitet. Sie übernimmt auch keine Haftung für die rechtlichen Konsequenzen. Wenn Sie Inhalte finden, die möglicherweise gegen das Urheberrecht verstoßen, freuen wir uns über eine E-Mail an: notice#oldtoolbag.com (Bitte ersetzen Sie # durch @, wenn Sie eine E-Mail senden, und geben Sie relevante Beweise an. Sobald die Informationen überprüft wurden, wird diese Website den涉嫌侵权的内 容立即删除。)