Warum verwendet Dropbox unter Linux so viel Speicher?
pmap zeigt, dass Dropbox fast 200 MB Speicher verwendet (unter Linux). Wenn ich Dropbox unter Windows ausführe, werden nur etwa 30 MB Speicher verwendet. Was ist der Grund dafür?
Warum gibt es so viele [ anon ]
Bereiche, die laut pmap-Ausgabe so viel Speicher belegen?
[mirror@home Dropbox]$ pgrep dropbox
9544
9544: /home/mirror/.dropbox-dist/dropbox
08048000 3028K r-x-- /home/mirror/.dropbox-dist/dropbox
0833d000 248K rw--- /home/mirror/.dropbox-dist/dropbox
0837b000 52K rw--- [ anon ]
08c20000 15688K rw--- [ anon ]
ad052000 1028K rw--- [ anon ]
ad1d4000 1024K rw--- [ anon ]
ad3d4000 1024K rw--- [ anon ]
ad5d4000 4K ----- [ anon ]
ad5d5000 10240K rw--- [ anon ]
adfd5000 4K ----- [ anon ]
adfd6000 10240K rw--- [ anon ]
ae9d6000 4K ----- [ anon ]
ae9d7000 10240K rw--- [ anon ]
af3d7000 4K ----- [ anon ]
af3d8000 10240K rw--- [ anon ]
afdd8000 4K ----- [ anon ]
afdd9000 10240K rw--- [ anon ]
b07d9000 4K ----- [ anon ]
b07da000 10240K rw--- [ anon ]
b11da000 4K ----- [ anon ]
b11db000 10240K rw--- [ anon ]
b1bdb000 4K ----- [ anon ]
b1bdc000 10240K rw--- [ anon ]
b25dc000 4K ----- [ anon ]
b25dd000 10240K rw--- [ anon ]
b2fdd000 4K ----- [ anon ]
b2fde000 10240K rw--- [ anon ]
........
b7fc6000 4K rw--- /lib/libpthread-2.5.so
b7fc7000 12K rw--- [ anon ]
b7fca000 4K r-x-- /home/mirror/.dropbox-dist/_bisect.so
b7fcb000 4K rw--- /home/mirror/.dropbox-dist/_bisect.so
b7fcc000 20K r-x-- /home/mirror/.dropbox-dist/_struct.so
b7fd1000 4K rw--- /home/mirror/.dropbox-dist/_struct.so
b7fd2000 108K r-x-- /lib/ld-2.5.so
b7fed000 4K r---- /lib/ld-2.5.so
b7fee000 4K rw--- /lib/ld-2.5.so
bfa77000 156K rw--- [ stack ]
total 194620K
4 answers
pmap
zeigt den virtuellen Speicher [[5]} eines Prozesses an – also nicht nur Orte, an denen der Prozess Daten und Stacks speichert, sondern auch dynamisch geladene Bibliotheken, Speicherzuordnungsdateien, gemeinsam genutzten Speicher usw. Sehr wenige davon tragen tatsächlich zu den resident oder shared Segmenten bei, die die tatsächliche Ressourcennutzung darstellen würden.
Mit anderen Worten, Sie sehen sich die falschen Zahlen an. Sehen Sie sich für "Speichernutzung" das Feld "RSS" in ps
oder "RES" in an top/htop
.
Zum Beispiel ist Dropbox auf meinem System ungefähr 38 MB groß, obwohl sein virtueller Speicherplatz über 1,7 GB beträgt.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-09-06 18:31:48
Nach https://www.dropbox.com/en/help/144
Willst du mehr Details? Dropbox speichert Metadaten auf Ihren Dateien im RAM, um konstante und teure Datenbank-Lookups während der Synchronisierung zu verhindern. Die Metadaten enthalten Pfade zu Dateien in Ihrer Dropbox, Prüfsummen,Änderungszeiten usw.
Wir arbeiten hart daran, diese Informationen kompakter zu gestalten und arbeiten an mehreren Fronten, um die Speichernutzung zu verbessern. Unsere Techniken sind nicht auf das Umschreiben von Stücken unserer beschränkt quellcode und Schreiben von benutzerdefinierten Speicherzuordnungen.
Auf meinem Computer ist die Größe von Dropbox jedoch 150 MB+ (gemäß top
). Meine Dropbox enthält 4261 Dateien+Ordner, was zu 36 KB pro Datei führt... Die Rohdaten, die sie erwähnen, sollten nicht mehr als etwa 200bytes pro Datei verwenden. Datenstrukturen können natürlich einen erheblichen Overhead haben.
Nur zum Spaß habe ich die Speichernutzung von Python überprüft und ein Wörterbuch der Dateien in meinem Dropbox-Ordner gespeichert:
import os
files = { f[0]: (f[0], (1,2,3,4,5), 1, 1) for f in os.walk(".") }
Dies ergibt einen RSS von 9.6 MB
Dies ist natürlich sehr vereinfacht, aber es scheint unwahrscheinlich, dass Dropbox einen sehr guten Job macht, einen geringen Speicherbedarf zu halten.
PS: Dies scheint kein Linux-Client-Problem zu sein: https://www.dropboxforum.com/hc/en-us/community/posts/204452623-Memory-Usage-Disproportionate-to-Dropbox-Contents
Hallo, ich verwende Dropbox unter Windows7 64bit und verwende es, um etwas mehr als 500 KB über 200 Dateien auf meinen Geräten zu synchronisieren.
Wie auch immer, der Dropbox-Client wird konsistent mit 95 MB RAM ausgeführt, was meiner Meinung nach etwas unvernünftig ist.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-06-28 10:51:45
Verwenden Sie pmap -x
, um das erweiterte Format anzuzeigen, einschließlich RSS:
$ pmap -x $(pgrep -x dropbox)
3015: /home/nathaniel/.dropbox-dist/dropbox-lnx.x86_64-26.4.24/dropbox
Address Kbytes RSS Dirty Mode Mapping
0000000000400000 4584 4260 0 r-x-- dropbox
0000000000400000 0 0 0 r-x-- dropbox
0000000000a7a000 120 116 4 r---- dropbox
0000000000a7a000 0 0 0 r---- dropbox
0000000000a98000 360 360 216 rw--- dropbox
0000000000a98000 0 0 0 rw--- dropbox
0000000000af2000 84 80 80 rw--- [ anon ]
. . . . . .
. . . . . .
. . . . . .
00007ffcc8d5b000 8 4 0 r-x-- [ anon ]
00007ffcc8d5b000 0 0 0 r-x-- [ anon ]
ffffffffff600000 4 0 0 r-x-- [ anon ]
ffffffffff600000 0 0 0 r-x-- [ anon ]
---------------- ------- ------- -------
total kB 3031520 214308 169808
Auf diese Weise können Sie den Unterschied zwischen virtuellem Speicher erkennen und der Speicher, den Dropbox tatsächlich verwendet (RSS). Hier ist eine gute Erklärung des Prozessspeichers:
Https://techtalk.intersec.com/2013/07/memory-part-1-memory-types/
Wenn Sie wollen einfach nur die RSS-Feeds, die Sie verwenden können ps
so::
$ ps -o pid,rss,cmd -p $(pgrep -x dropbox)
PID RSS CMD
3015 212768 /home/nathaniel/.dropbox-dist/dropbox-lnx.x86_64-26.4.24/dropbox
Ich finde, dass Dropbox unter Linux viel Speicher leckt,
mindestens in version 2015.10.28
.
Nach einer Woche oder so kann der RSS bis zu mehr als ein GB kriechen.
Meine Problemumgehung besteht darin, sie regelmäßig neu zu starten.
Hier ist ein minimales Skript zum Neustart von Dropbox:
# /usr/bin/env sh
dropbox stop
while pgrep -x dropbox > /dev/null
do
dropbox status
sleep 1
done
dropbox start
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-05-28 00:45:35
Ich bemerkte auch, dass Dropbox fast den gesamten verfügbaren Speicher unter Linux Mint 17.1 und später unter 18.0 verwendete.
Ich habe dies gesehen, als ich den Systemmonitor geöffnet, auf die Registerkarte "Prozesse" geklickt und oben in der Spalte "Speicher" geklickt habe, um nach der größten Speichernutzung zu sortieren.
Ein Neustart hat das problem nicht beheben. Nach einem Neustart startete Dropbox den Prozess der Verwendung von mehr und mehr Speicher neu.
Das hat bei mir funktioniert, aber lies zuerst die folgende Warnung:
Ändern Sie die Berechtigungen von Dateien in Ihr dropbox-Ordner.
sudo chmod 755 -R ~/Dropbox
Starten Sie den Computer neu oder beenden Sie alle dropbox-Prozesse und starten Sie dropbox. Hinweis:" dropbox stop " kann nicht genug sein.
Führen Sie dies aus und Sie sollten "Up to date" sehen
dropbox status
Warnung: Wenn Sie Konfigurationsdateien in Dropbox gespeichert haben, die andere Berechtigungen als 755 haben, kann das Wiederherstellen dieser Dateien mit geänderten Berechtigungen zu Problemen führen. Sie können Möglichkeiten zum Speichern und Wiederherstellen von Dateiberechtigungen finden, wenn dies ein Problem ist. Kopieren Sie zumindest die Originaldatei in eine andere Dateiname vor dem wiederherstellen der Dropbox-version. Dann wissen Sie, was die ursprünglichen Berechtigungen waren, wenn etwas kaputt geht. Oder bearbeiten Sie die Originaldatei mit den richtigen Berechtigungen-kopieren Sie den gewünschten Teil der Dropbox-Datei und fügen Sie ihn ein, indem Sie ihn ersetzen oder zur Originaldatei hinzufügen.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-06-30 10:17:48