Der Linux-Server belegt nur 60% des Arbeitsspeichers und tauscht dann aus


12

Ich habe einen Linux-Server, auf dem unser Bacula-Backup-System ausgeführt wird. Die Maschine schleift wie verrückt, weil es schwer ist, zu tauschen. Das Problem ist, dass es nur 60% seines physischen Speichers verwendet!

Hier ist die Ausgabe von free -m:

free -m
             total       used       free     shared    buffers     cached
Mem:          3949       2356       1593          0          0          1
-/+ buffers/cache:       2354       1595
Swap:         7629       1804       5824

und einige Beispielausgaben von vmstat 1:

procs -----------memory---------- ---swap-- -----io---- -system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  2 1843536 1634512      0   4188   54   13  2524   666    2    1  1  1 89  9  0
 1 11 1845916 1640724      0    388 2700 4816 221880  4879 14409 170721  4  3 63 30  0
 0  9 1846096 1643952      0      0 4956  756 174832   804 12357 159306  3  4 63 30  0
 0 11 1846104 1643532      0      0 4916  540 174320   580 10609 139960  3  4 64 29  0
 0  4 1846084 1640272      0   2336 4080  524 140408   548 9331 118287  3  4 63 30  0
 0  8 1846104 1642096      0   1488 2940  432 102516   457 7023 82230  2  4 65 29  0
 0  5 1846104 1642268      0   1276 3704  452 126520   452 9494 119612  3  5 65 27  0
 3 12 1846104 1641528      0    328 6092  608 187776   636 8269 113059  4  3 64 29  0
 2  2 1846084 1640960      0    724 5948    0 111480     0 7751 116370  4  4 63 29  0
 0  4 1846100 1641484      0    404 4144 1476 125760  1500 10668 105358  2  3 71 25  0
 0 13 1846104 1641932      0      0 5872  828 153808   840 10518 128447  3  4 70 22  0
 0  8 1846096 1639172      0   3164 3556  556 74884   580 5082 65362  2  2 73 23  0
 1  4 1846080 1638676      0    396 4512   28 50928    44 2672 38277  2  2 80 16  0
 0  3 1846080 1628808      0   7132 2636    0 28004     8 1358 14090  0  1 78 20  0
 0  2 1844728 1618552      0  11140 7680    0 12740     8  763 2245  0  0 82 18  0
 0  2 1837764 1532056      0 101504 2952    0 95644    24  802 3817  0  1 87 12  0
 0 11 1842092 1633324      0   4416 1748 10900 143144 11024 6279 134442  3  3 70 24  0
 2  6 1846104 1642756      0      0 4768  468 78752   468 4672 60141  2  2 76 20  0
 1 12 1846104 1640792      0    236 4752  440 140712   464 7614 99593  3  5 58 34  0
 0  3 1846084 1630368      0   6316 5104    0 20336     0 1703 22424  1  1 72 26  0
 2 17 1846104 1638332      0   3168 4080 1720 211960  1744 11977 155886  3  4 65 28  0
 1 10 1846104 1640800      0    132 4488  556 126016   584 8016 106368  3  4 63 29  0
 0 14 1846104 1639740      0   2248 3436  428 114188   452 7030 92418  3  3 59 35  0
 1  6 1846096 1639504      0   1932 5500  436 141412   460 8261 112210  4  4 63 29  0
 0 10 1846104 1640164      0   3052 4028  448 147684   472 7366 109554  4  4 61 30  0
 0 10 1846100 1641040      0   2332 4952  632 147452   664 8767 118384  3  4 63 30  0
 4  8 1846084 1641092      0    664 4948  276 152264   292 6448 98813  5  5 62 28  0

Darüber hinaus scheint die Ausgabe von top sortiert nach CPU-Zeit die Theorie zu stützen, dass Swap das ist, was das System blockiert:

top - 09:05:32 up 37 days, 23:24,  1 user,  load average: 9.75, 8.24, 7.12
Tasks: 173 total,   1 running, 172 sleeping,   0 stopped,   0 zombie
Cpu(s):  1.6%us,  1.4%sy,  0.0%ni, 76.1%id, 20.6%wa,  0.1%hi,  0.2%si,  0.0%st
Mem:   4044632k total,  2405628k used,  1639004k free,        0k buffers
Swap:  7812492k total,  1851852k used,  5960640k free,      436k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+    TIME COMMAND                                                                                                                             
 4174 root      17   0 63156  176   56 S    8  0.0   2138:52  35,38 bacula-fd                                                                                                                            
 4185 root      17   0 63352  284  104 S    6  0.0   1709:25  28,29 bacula-sd                                                                                                                            
  240 root      15   0     0    0    0 D    3  0.0 831:55.19 831:55 kswapd0                                                                                                                              
 2852 root      10  -5     0    0    0 S    1  0.0 126:35.59 126:35 xfsbufd                                                                                                                              
 2849 root      10  -5     0    0    0 S    0  0.0 119:50.94 119:50 xfsbufd                                                                                                                              
 1364 root      10  -5     0    0    0 S    0  0.0 117:05.39 117:05 xfsbufd                                                                                                                              
   21 root      10  -5     0    0    0 S    1  0.0  48:03.44  48:03 events/3                                                                                                                             
 6940 postgres  16   0 43596    8    8 S    0  0.0  46:50.35  46:50 postmaster                                                                                                                           
 1342 root      10  -5     0    0    0 S    0  0.0  23:14.34  23:14 xfsdatad/4                                                                                                                           
 5415 root      17   0 1770m  108   48 S    0  0.0  15:03.74  15:03 bacula-dir                                                                                                                           
   23 root      10  -5     0    0    0 S    0  0.0  13:09.71  13:09 events/5                                                                                                                             
 5604 root      17   0 1216m  500  200 S    0  0.0  12:38.20  12:38 java                                                                                                                                 
 5552 root      16   0 1194m  580  248 S    0  0.0  11:58.00  11:58 java

Hier ist das Gleiche, sortiert nach der Größe des Images des virtuellen Speichers:

top - 09:08:32 up 37 days, 23:27,  1 user,  load average: 8.43, 8.26, 7.32
Tasks: 173 total,   1 running, 172 sleeping,   0 stopped,   0 zombie
Cpu(s):  3.6%us,  3.4%sy,  0.0%ni, 62.2%id, 30.2%wa,  0.2%hi,  0.3%si,  0.0%st
Mem:   4044632k total,  2404212k used,  1640420k free,        0k buffers
Swap:  7812492k total,  1852548k used,  5959944k free,      100k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+    TIME COMMAND                                                                                                                             
 5415 root      17   0 1770m   56   44 S    0  0.0  15:03.78  15:03 bacula-dir                                                                                                                           
 5604 root      17   0 1216m  492  200 S    0  0.0  12:38.30  12:38 java                                                                                                                                 
 5552 root      16   0 1194m  476  200 S    0  0.0  11:58.20  11:58 java                                                                                                                                 
 4598 root      16   0  117m   44   44 S    0  0.0   0:13.37   0:13 eventmond                                                                                                                            
 9614 gdm       16   0 93188    0    0 S    0  0.0   0:00.30   0:00 gdmgreeter                                                                                                                           
 5527 root      17   0 78716    0    0 S    0  0.0   0:00.30   0:00 gdm                                                                                                                                  
 4185 root      17   0 63352  284  104 S   20  0.0   1709:52  28,29 bacula-sd                                                                                                                            
 4174 root      17   0 63156  208   88 S   24  0.0   2139:25  35,39 bacula-fd                                                                                                                            
10849 postgres  18   0 54740  216  108 D    0  0.0   0:31.40   0:31 postmaster                                                                                                                           
 6661 postgres  17   0 49432    0    0 S    0  0.0   0:03.50   0:03 postmaster                                                                                                                           
 5507 root      15   0 47980    0    0 S    0  0.0   0:00.00   0:00 gdm                                                                                                                                  
 6940 postgres  16   0 43596   16   16 S    0  0.0  46:51.39  46:51 postmaster                                                                                                                           
 5304 postgres  16   0 40580  132   88 S    0  0.0   6:21.79   6:21 postmaster                                                                                                                           
 5301 postgres  17   0 40448   24   24 S    0  0.0   0:32.17   0:32 postmaster                                                                                                                           
11280 root      16   0 40288   28   28 S    0  0.0   0:00.11   0:00 sshd                                                                                                                                 
 5534 root      17   0 37580    0    0 S    0  0.0   0:56.18   0:56 X                                                                                                                                    
30870 root      30  15 31668   28   28 S    0  0.0   1:13.38   1:13 snmpd                                                                                                                                
 5305 postgres  17   0 30628   16   16 S    0  0.0   0:11.60   0:11 postmaster                                                                                                                           
27403 postfix   17   0 30248    0    0 S    0  0.0   0:02.76   0:02 qmgr                                                                                                                                 
10815 postfix   15   0 30208   16   16 S    0  0.0   0:00.02   0:00 pickup                                                                                                                               
 5306 postgres  16   0 29760   20   20 S    0  0.0   0:52.89   0:52 postmaster                                                                                                                           
 5302 postgres  17   0 29628   64   32 S    0  0.0   1:00.64   1:00 postmaster

Ich habe versucht, den swappinessKernel-Parameter sowohl auf hohe als auch auf niedrige Werte einzustellen, aber nichts scheint das Verhalten hier zu ändern. Ich weiß nicht, was los ist. Wie kann ich herausfinden, was das verursacht?

Update: Bei dem System handelt es sich um ein 64-Bit-System, sodass aufgrund von 32-Bit-Problemen keine Speicherbeschränkungen auftreten sollten.

Update2: Wie ich bereits in der ursprünglichen Frage erwähnt habe, habe ich bereits versucht, swappiness auf alle möglichen Werte abzustimmen, einschließlich 0. Das Ergebnis ist immer dasselbe, wobei ungefähr 1,6 GB Arbeitsspeicher ungenutzt bleiben.

Update3: Top-Ausgabe zu den obigen Informationen hinzugefügt.


2
Es scheint, dass Linux den Seiten-Cache für nichts verwendet, aber Sie haben immer noch eine große Menge an freiem Speicher. Etwas stimmt eindeutig nicht.
David Pashley

1
Können Sie zusätzliche Details zum Linux-Betriebssystem veröffentlichen? Hersteller, Release, Kernelversion, etc? Es gibt ein paar Tools, die ich vorschlagen möchte, aber einige von ihnen erfordern eine bestimmte Kernelversion oder unterstützen Bibliotheksversion.
Christopher Cashell

Antworten:


6

Die Leistung von Bacula hängt stark von der Datenbank ab. Wahrscheinlich ist es Postgresql, das Ihren Server umbringt. Der Durchschnitt der hohen Auslastung und der relativ hohe Prozentsatz der CPU-Zeit, die im Wartezustand verbracht wurde, zeigen deutlich, dass sie auf Disk I / O wartet ... Und das macht PostgreSQL. Für jede Datei in Ihrem Sicherungssatz wird mindestens eine UPDATE-Anweisung ausgeführt. Mach dir keine Sorgen über das Tauschen.

Optimieren Sie die PostgreSQL-Installation. Geben Sie einzelnen Datenbanken (oder sogar Tabellen) möglicherweise ihre eigenen Festplatten / RAID-Sätze, um die E / A zu verteilen. Sie können PostgreSQL zwingen, aynchrone Schreibvorgänge auszuführen, wenn dies noch nicht geschehen ist. Nutzen Sie den gemeinsam genutzten Speicher, der PostgreSQL zur Verfügung steht. Das wird zumindest einen Großteil des Lesens in der Datenbank erleichtern. Wenn Sie dies noch nie getan haben, führen Sie VACCUM ANALYZE auch in der Bacula-Datenbank aus, um dem Abfrageoptimierer eine Funktion zu geben, mit der Sie arbeiten können.

Der mit Abstand schwächste Punkt von Bacula sind die Datenbankabhängigkeiten (und die Hirnschädigung einiger davon ...). Führen Sie eine Bereinigung eines kürzlich erstellten umfangreichen Backups durch und stellen Sie fest, wie lange (Stunden) das Ausführen von ein paar Dutzend Millionen Abfragen dauert. Bacula mag vergleichsweise wenige große Dateien, sonst ist es ein Hund.


Vielen Dank. Das scheint wirklich der Kern des Problems zu sein. Wir werden nach Möglichkeiten suchen, dies zu korrigieren.
Kamil Kisiel

19

Sie sind I / O-gebunden. Ihr System ist ein kleines Rettungsfloß, das von einer stürmischen Flut von Puffern / Cache / VM-Paging-Wellen überflutet wird, die 30 Meter hoch sind.

Beeindruckend. Einfach wow. Sie verschieben Ihre E / A um etwa 100 MB / s, die Wartezeit für die E / A liegt weit über 50%, und Sie verfügen über 4 GB RAM. Der Gegendruck auf der VM dieses Servers muss enorm sein. Unter "normalen" Umständen wird jedes freie RAM, das Sie hatten , in weniger als 40 Sekunden bei lebendigem Leib aufgebraucht , wenn das System zu puffern / zu cachen beginnt .

Wäre es möglich, die Einstellungen von zu posten /proc/sys/vm? Dies würde einen Einblick geben, was Ihr Kernel für "normal" hält.

Diese postmasterProzesse zeigen auch an, dass Sie PostgreSQL im Hintergrund ausführen. Ist das normal für dein Setup? PostgreSQL in einer Standardkonfiguration benötigt sehr wenig RAM, aber sobald es auf Geschwindigkeit eingestellt ist, kann es schnell 25% -40% Ihres verfügbaren RAM aufbrauchen. Daher kann ich nur raten, dass Sie angesichts der Anzahl der in der Ausgabe enthaltenen Daten eine Art Produktionsdatenbank ausführen, während Sie Sicherungen ausführen. Das ist kein gutes Zeichen. Kannst du uns etwas mehr darüber erzählen, warum es läuft? Was ist die Größe des Shared Memory-Parameters für alle?postmasterProzesse? Ist es möglich, den Dienst herunterzufahren oder die Datenbank vorübergehend neu zu konfigurieren, um weniger Verbindungen / Puffer zu verwenden, während die Sicherungen ausgeführt werden? Dies wird dazu beitragen, den Druck auf die bereits belasteten E / A und den freien Arbeitsspeicher zu verringern. Beachten Sie, dass jeder postmasterProzess mehr RAM verbraucht, als die Datenbank für das interne Caching benötigt. Achten Sie also beim Anpassen der Speichereinstellungen darauf, welche "gemeinsam" und welche "pro Prozess" verwendet werden .

Wenn Sie PostgreSQL als Teil Ihres Sicherungsprozesses verwenden, optimieren Sie es erneut, um nur die minimale Anzahl von Verbindungen zu akzeptieren , und reduzieren Sie die Parameter pro Prozess auf einen vernünftigen Wert (jeweils nur wenige Megabyte). Der Nachteil dabei ist, dass PostgreSQL auf die Festplatte verschüttet wird, wenn es nicht wie gewünscht mit dem Dataset im RAM arbeiten kann, sodass die Festplatten-E / A tatsächlich erhöht wird .

X11 an und für sich nimmt nicht viel Speicherplatz in Anspruch, aber eine vollständige Desktopsitzung kann mehrere Megabyte in Anspruch nehmen. Melden Sie alle aktiven Sitzungen ab und führen Sie Ihre Verbindung über die Konsole oder über SSH aus.

Trotzdem denke ich nicht, dass es sich nur um ein Gedächtnisproblem handelt. Wenn Sie mehr als 50% der E / A-Vorgänge abwarten (und Zahlen veröffentlichen, die die 70er Jahre berühren), wird der Rest des Systems durch den daraus resultierenden Engpass möglicherweise überlastet. Ähnlich wie Darth Vader den Hals zerquetscht.

Jemand, der geschäftlich mit Darth Vaders Todesgriff zu tun hat

Für wie viele bündige Threads sind Sie konfiguriert? Verwenden

cat /proc/sys/vm/nr_pdflush_threads

herauszufinden und

echo "vm.nr_pdflush_threads = 1" >> /etc/sysctl.conf

um es auf einen einzelnen Thread zu setzen. Beachten Sie, dass der letzte Befehl ihn beim Neustart permanent laden lässt. 1 oder 2 zu sehen ist nicht ungewöhnlich. Wenn Sie mehrere Kerne oder viel Spindel- / Buskapazität für E / A haben, sollten Sie diese (geringfügig) anstoßen. Mehr Flush-Threads = mehr E / A-Aktivität, aber auch mehr CPU-Zeit für E / A-Wartezeiten.

Ist es der Standardwert oder haben Sie ihn überschritten? Haben Sie in Erwägung gezogen, die Anzahl zu verringern, um den Druck auf die E / A-Operationen zu verringern? Oder haben Sie eine große Anzahl von Spindeln und Kanäle zur Arbeit mit, wobei in diesem Fall, haben Sie darüber nachgedacht , Erhöhung der Anzahl der bündig Fäden?

PS Sie möchten die Swap-Funktion auf die niedrigeren Werte und nicht auf die höheren Werte einstellen, um ein Auslagern zu verhindern. Höchster Wert = 100 = wie verrückt tauschen, wenn es sich richtig anfühlt, niedrigster Wert = 0 = überhaupt nicht tauschen.


Ich werde einige Ihrer Vorschläge anschauen. Nein, ich bin nicht verrückt und betreibe eine Produktionsdatenbank auf dem Backup-System. Das PostgreSQL ist Teil des Backup-Systems, da Bacula dieses als Informationsspeicher verwendet, um zu verfolgen, was sich auf welchem ​​Band usw. befindet. Ich werde einige der von Ihnen angegebenen Parameter genauer untersuchen. Der hohe E / A-Durchsatz ist darauf zurückzuführen, dass andere Server Daten in die Laufwerksschublade dieses Servers kopieren und diese Daten anschließend abrufen und in eine LTO4-Bandbibliothek schreiben.
Kamil Kisiel

Wie sind die Festplatten des Servers angeordnet? Verwenden Sie ein gespiegeltes Laufwerksetup?
Avery Payne,

1
+1 für lila Prosa :)
pjc50

Ja, ich fühlte mich an diesem Tag ein bisschen kreativ. Entschuldigung für das Drama. :)
Avery Payne

7

Wenn Sie sich die Blöcke ansehen, die pro Sekunde (bi) unter IO eingelesen wurden, wird die Swap-Aktivität um mehrere Größenordnungen in den Schatten gestellt. Ich glaube nicht, dass die Auslagerungsnutzung dazu führt, dass Ihre Festplatte kaputt geht. Ich denke, dass auf der Box etwas läuft, das einfach eine Menge Festplattenaktivität (Lesevorgänge) verursacht.

Ich würde die laufenden Anwendungen untersuchen und herausfinden, ob Sie den Täter finden können.


Nun, wie gesagt, es läuft das Bacula Backup System. Die eingehenden Blöcke sind wahrscheinlich das Ergebnis des Server-Dumpings von Daten auf das extern angeschlossene SAS-Festplatten-Array.
Kamil Kisiel

1
Sind Sie sicher, dass die Festplatte durch das Auslagern und nicht durch die Sicherungen in den Papierkorb geworfen wird? Welche anderen Prozesse laufen auf der Box? Wenn der Kernel neu genug ist, gibt es einige sehr nützliche Tools (iotop), die sich mit der Verwendung von io befassen und sogar die E / A-Priorität (ionice) festlegen können, wenn Sie den CFQ-E / A-Scheduler verwenden.
Christopher Cashell

6

Sehen Sie, ob dieser Link einige Ihrer Fragen beantwortet. Ich sehe regelmäßig, wie Linux lange vor 60% Auslastung den Speicher auslagert (nicht auslagert). Dies ist ein erwarteter Teil der Speicheroptimierung:

http://www.sheepguardingllama.com/?p=2252

Aber Ihr Mangel an Puffern / Cache macht mir Sorgen. Das sieht sehr ungewöhnlich aus. Also denke ich, dass etwas mehr nicht stimmt.


Hey - guter Anruf - wo sind die Puffer / Cache? Sind sie ausgeschaltet? Macht sie etwas ständig ungültig?
MikeyB

6

Können Sie versuchen, Swap vollständig zu deaktivieren?

swapoff /dev/hdb2

oder so - zumindest wird dies bestätigen, dass es sich bei dem Tausch um Ihr Problem handelt und nicht um etwas anderes.


+1, um zu bestätigen, dass die vermutete Diagnose tatsächlich die Ursache des Problems ist.
Wayne

Ich werde es morgen bei der Arbeit versuchen. Außerdem ist mein Spaw nicht auf / dev / hdb2;)
Kamil Kisiel

Es sollte jedoch beachtet werden, dass dies zwar eine gute Diagnosehilfe ist, in einem Produktionssystem jedoch sehr gefährlich ist. Wenn Sie den Swap wirklich brauchen , wird Ihnen schnell der Arbeitsspeicher ausgehen. Und dann wird der OOM-Killer kommen und einen zufälligen Prozess abbrechen, der vielleicht Ihre Produktions-DB ist ...
sleske

Einverstanden - Sie sollten dies nicht in der Nähe der Produktion tun.
Tim Howland

3

Standardmäßig ist swappiness auf 60 eingestellt.

cat / proc / sys / vm / swappiness 60

Swappiness ist ein Kernel, der verwendet wird, um festzulegen, wie sehr der Kernel den Austausch über RAM bevorzugt. Hohe Auslagerungsrate bedeutet, dass der Kernel viel auslagert, und niedrige Auslagerungsrate bedeutet, dass der Kernel versucht, keinen Auslagerungsbereich zu verwenden.

Wir können diese Änderung am Wert von vm.swappiness in /etc/sysctl.conf vornehmen .


Oder Sie können den Prozentsatz direkt in eingeben /proc/sys/vm/swappiness.
user2284570

2

Sie können das manuell einstellen Status des Kernels Sie bei der /proc/sys/vm/swappinessAusgabe des Befehls sehen können sysctl vm.swappiness. Die Swap-Funktion ist eine Kernel-Einstellung, die bestimmt, wie oft der Swap verwendet wird.

Mit dieser Einstellung sudo sysctl vm.swappiness=0deaktivieren Sie die Swap-Partition effektiv. Um diese Änderung dauerhaft können Sie hinzufügen / ändern vm.swappiness=0in /etc/sysctl.conf. Sie sollten sehen, was für Sie ein guter Wert ist. Ich persönlich habe es so konfiguriert vm.swappiness=10, dass 60 der Standardwert ist.


Nicht ganz, mit swappiness = 0 sagen Sie, tauschen Sie niemals, wenn es eine Möglichkeit gibt, dies zu vermeiden, aber tauschen Sie immer noch, wenn die einzige andere Option darin besteht, eine Zuordnung oder einen OOM-Kill nicht zu bestehen. Ich finde, ein Swap-Wert von 30 ist eine schöne Verbesserung für Laptops, aber ich musste mich auf anderen Systemen nicht damit herumschlagen.
LapTop006,

1

Eine andere Sache, die Sie sich ansehen möchten, ist die Warteschlange für die Kernelausführung und nicht unterbrechbare Prozesse (die Spalten 'r' und 'b' in vmstat) sind ein Indikator dafür, dass das System zeitweise überlastet ist. Nebenbei bemerkt, verwechseln Sie nicht Sättigung mit Auslastung ... das eigentliche Problem kann ein ausgehungerter Prozessstapel gegen den gesättigten Kernel sein :-(

Sie können auch 'pmap -x [PID]' ausführen, um zusätzliche Speicherdetails von einigen der aufwändigeren Prozesse abzurufen. Ich wünsche Ihnen Glück!

Matt


1

Möglicherweise haben Sie kurzlebige Prozesse, die viel Arbeitsspeicher verbrauchen. Beenden Sie sie dann, bevor Sie die Möglichkeit haben, sie zu bemerken.

Dies würde im Einklang mit dem stehen, was Sie sowieso sehen.


1

Haben Sie Probleme mit dem Inode-Cache untersucht? slabtopsollte Ihnen zumindest einen Ausgangspunkt geben, wenn Sie auf so etwas stoßen.


0

Während Ihr System 64-Bit ist, kann das System möglicherweise nicht den gesamten verfügbaren Speicher adressieren. Dies ist eine Chipsatzbeschränkung. Zum Beispiel "unterstützt" der Mac mini der vorherigen Generation 4 GB RAM, aber nur 3,3 GB waren tatsächlich adressierbar.


Ich bin ein SGI Altix XE240 ziemlich sicher, dass es mehr als 4 GB RAM unterstützen kann, da ich mit 32 GB verwendet habe.
Kamil Kisiel

Es ist keine Chipsatzbeschränkung im alten Mini, dieser Chipsatz kann bis zu 8 GB, Apple hat jedoch die Adressierungszeilen nicht hinzugefügt, um dies richtig zu handhaben (IIRC, aber es gibt einen allgemeinen Fall unter mehreren Herstellern)
LapTop006
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.