Zu 1) sag ich weiter unten etwas. Denn ich kann mir wirklich keine Fall vorstellen, dass eine Datenbank konstant auf 1GB bleibt.
Zu 2)
Während tuning-primer den binlog_cache_size in den Thread-Speicher mit zählt tut dies mysqltuner nicht. Was davon korrekt ist, entzieht sich meiner aktuellen Kenntnis.
Zu 3)
Den Thread-Buffer berechnen beide Scripte aus read_buffer_size + read_rnd_buffer_size + sort_buffer_size + thread_stack + join_buffer_size und tuning-primer zusätzlich mit binlog_cache_size.
Für den Max-Allocated wird Thread-Buffer * max_used_connections plus den globalen Buffers gerechnet: innodb_buffer_pool_size + innodb_additional_mem_pool_size + innodb_log_buffer_size + key_buffer_size + query_cache_size. Zusätzlich addiert mysqltuner auch die max_tmp_table_size dazu.
Zu 4)
Steht ja eigentlich oben.
Es sei noch angemerkt, dass beide Script-Autoren sich sehr viel Mühe gemacht haben und MySQL relativ gut gecheckt haben. Wer also von den Beiden bei den Abweichungen evtl. richtig oder falsch liegt mag ich nicht so ganz beurteilen.
Zu 5)
Z.B. mit "top" wenn Du Dir mit den Tasten f + p + [Return] die SWAP-Spalte anzeigen lässt.
Wenn von wichtigen Prozessen (z.B. MySQL oder Apache) etwas im Swap liegt, bedeutet dies aber noch nichts Schlimmes. Beide haben einen wesentlichen Code-Overhead. Sprich Programmcode, den ein normal Sterblicher niemals braucht.
Die weiteren nicht durchnummerierten Fragen:
wenn man konkret weiß ich habe eine DB mit der Größe X und reche mit Y Usern
Eine Datenbank ist doch dynamisch!
Du kannst keine DB mit einer festen Größe veranschlagen, wenn Du weißt, dass die Daten durch die Nutzung weiter wachsen oder sich verändern werden. Sobald sich Daten verändern hilft auch der größte Cache nichts.
bei WordpressMU mehr MySql Prozesse als httpd Prozesse benötigt also nicht Apache : MySql = 2 :1 oder 1:1 sondern eher 90 : 100 wie geht das überhaupt?
Es werden dann ggf. in einem Script zwei Datenbankverbindungen aufgebaut.
So was ist entweder weil es schlecht programmiert ist, oder weil der Entwickler in der ersten Connection einen Query auslesen möchte, während er aber gleichzeitig Daten aus einem anderen Query braucht.
Eine spezielle Erklärung (um die Schuld nicht auf die WP-Entwickler zu schieben) wäre, dass ein WP-Modul/-Plugin zusätzlich eine eigene Connection aufbaut. Das wäre dann einfach eine schlechte Programmierung des Plugins bzw. es wird sich nicht an die gegebene API gehalten.
huschi.