Warum verwendet mein Server nur 3 GB Speicher

Warum verwendet mein Server nur 3 GB Speicher

Der Server hat 24 GB Speicher und 4 Quad-Core-CPUs. Er betreibt eine vielbeschäftigte Website mit Apache/MySQL/PHP und gibt manchmal eine Meldung aus, dass die Serverlast zu hoch ist. Wenn ich mir die Protokolle anschaue, wird nie mehr als 3 GB Speicher verwendet, was mir seltsam vorkommt. Dies könnte eine MySQL- oder Apache-Einstellung sein.

Hier einige Daten

uname -a
Linux s2274 2.6.32-32-server #62-Ubuntu SMP Wed Apr 20 22:07:43 UTC 2011 x86_64 GNU/Linux


free -m
             total       used       free     shared    buffers     cached
Mem:         24153      20951       3201          0        125      17719
-/+ buffers/cache:       3106      21046
Swap:        11240         14      11226

Wie Sie sehen, wird hier angezeigt, dass 20 GB verwendet werden. Aber wenn ich mir top/htop anschaue, wird nie eine Verwendung über 3092 angezeigt. Die Prozessoren sind nicht wirklich aktiv, die durchschnittliche Auslastung beträgt 0,9. Könnte ich den von Apache und/oder MySQL verwendeten Speicher irgendwie erhöhen, um zu sehen, ob der gesamte Speicher verwendet werden kann?


Entschuldigen Sie, ich war eine Weile weg … Hier ist die Ausgabe des mysqld-Befehls:

120108  8:48:21 [Note] Plugin 'FEDERATED' is disabled.
  --binlog_cache_size=#
  --bulk_insert_buffer_size=#
  --delayed_queue_size=#
  --join_buffer_size=#
  --key_buffer_size=# The size of the buffer used for index blocks for MyISAM
  --key_cache_block_size=#
  --max_binlog_cache_size=#
  --max_binlog_size=# Binary log will be rotated automatically when the size
                      max_relay_log_size is 0. The minimum value for this
  --max_heap_table_size=#
  --max_join_size=#   Joins that are probably going to read more than
                      max_join_size records return an error.
  --max_relay_log_size=#
                      the size exceeds max_binlog_size. 0 excepted, the minimum
  --myisam_block_size=#
  --myisam_data_pointer_size=#
  --myisam_max_extra_sort_file_size=#
  --myisam_max_sort_file_size=#
  --myisam_sort_buffer_size=#
  --preload_buffer_size=#
  --profiling_history_size=#
  --query_alloc_block_size=#
  --query_cache_size=#
  --query_prealloc_size=#
  --range_alloc_block_size=#
  --read_buffer_size=#
  --read_rnd_buffer_size=#
  --record_buffer=#   Alias for read_buffer_size
  --sort_buffer_size=#
  --thread_cache_size=#
  --tmp_table_size=#  If an internal in-memory temporary table exceeds this
  --transaction_alloc_block_size=#
--transaction_prealloc_size=#
binlog_cache_size                 32768
bulk_insert_buffer_size           8388608
delayed_queue_size                1000
join_buffer_size                  12582912
key_buffer_size                   805306368
key_cache_block_size              1024
max_binlog_cache_size             18446744073709547520
max_binlog_size                   104857600
max_heap_table_size               805306368
max_join_size                     18446744073709551615
max_relay_log_size                0
myisam_block_size                 1024
myisam_data_pointer_size          6
myisam_max_extra_sort_file_size   2147483648
myisam_max_sort_file_size         9223372036853727232
myisam_sort_buffer_size           25165824
preload_buffer_size               32768
profiling_history_size            15
query_alloc_block_size            8192
query_cache_size                  805306368
query_prealloc_size               8192
range_alloc_block_size            4096
read_buffer_size                  25165824
read_rnd_buffer_size              25165824
sort_buffer_size                  25165824
thread_cache_size                 256
tmp_table_size                    805306368
transaction_alloc_block_size      8192
transaction_prealloc_size         4096

Das PHP-Speicherlimit beträgt 128 M

Ich sehe dieses 3-GB-Limit in mehreren Situationen. Beispielsweise Htop, top und wenn ich mich im Serverstatus bei Webmin anmelde. (Ja, ich verwende Webmin, da ich viele Verwaltungsaufgaben von meinem iPad aus erledige ;))

Ich werde versuchen, hier einen Screenshot hinzuzufügen ...

Antwort1

Sie verwenden 20951 von 24153. Die Anwendungen fordern nicht mehr als 3092 an, daher verwendet der Kernel den Rest für Cache und Puffer. Da Ihre Anwendungen mehr Speicher benötigen, reduziert der Kernel den Cache, um den neuen Anwendungsanforderungen gerecht zu werden.

Die Optimierung der MySQL- und Apache-Konfiguration für optimale Leistung hängt von der Anwendung ab. In manchen Fällen, wie bei statischen Websites, ist ein großer Dateisystem-Cache großartig. Eine dynamische Site mit starker Datenbankinteraktion würde jedoch von einigen Änderungen an der MySQL-Standardkonfiguration profitieren.

Percona verfügt über ein nettes Tool, das Ihnen den Einstieg in die MySQL-Konfiguration erleichtert.http://tools.percona.com/wizardSobald die Grundlagen festgelegt sind, können Sie weitere Anpassungen an die Besonderheiten Ihrer Anwendung vornehmen.

Die Apache-Konfiguration hängt vom Datenverkehr und der Größe der Anfragen ab. Ohne Kenntnisse ist es schwierig, über die Standardeinstellungen hinaus Empfehlungen zu geben.

Antwort2

Wenn ich richtig liege, betreiben Sie einen 32-Bit-Server

32 Bit ist auf 4 GB Speicher beschränkt, sofern Sie nicht das PAE-Image verwenden:

Ein 32-Bit-Computer hat eine Wortgröße von 32 Bit, was den Speicher theoretisch auf 4 GB begrenzt. Diese Grenze wurde durch die Verwendung der „Physical Address Extension“ (oder PAE) erweitert, wodurch die Grenze auf 64 GB erhöht wird, obwohl der Speicherzugriff über 4 GB etwas langsamer ist.

ich kann nicht herausfinden, ob das Kernel-Image PAE enthält.

Sie können versuchen, apt-get install linux-image-generic-pae auszuführen

Wenn das nicht der Fall ist, führen Sie einen Neustart durch und prüfen Sie, ob Sie mehr von Ihrem Speicher nutzen.

Andernfalls erwägen Sie die Installation eines 64-Bit-Servers

verwandte Informationen