Virtual Server L 6.0 - Hosteurope - Optimal einrichten

Poyraz50

New Member
Hallo Community,

ich habe zwar schon ein paar Jahre Erfahrung mit Vservern, dennoch bin ich nicht der Profi an sich. Ich ziehe auf einen Virtual Server L 6.0 um und habe jetzt die Möglichkeit den Server von Grund auf optimal einzurichten.

Da ich jedoch hoffe, dass mir die erfahreren Benutzer ein paar Tipps geben können, habe ich diesen Thread eröffnet.

Geplant ist eine Forensoftware auf dem Server laufen zu lassen (vbulletin).
Ca. 20. - 25.000 Echte Besucher (unique visitors) im Monat. (Jedoch ist auch das doppelte angestrebt für die nächste Zeit)

Ansonsten, welche Module sind abschaltbar und bringen einen Perfomance-Anstieg, welche sind am besten wie zu optimieren und welche sollte ich für eine bessere Performance nachinstallieren?

Vor allem MySQL scheint ausbaufähig zu sein.

Ich wäre über jeden hilfreichen Tipp dankbar.

Ich fange quasi bei diesem Server bei Null an und würde gerne optimal starten und da würde ich mich über Hilfestellungen freuen, denn dass es hier viel fähigere Leute gibt, ist mir klar.

Wäre super, vielen Dank für die Mühe.
 
Eher interessant wäre die Anzahl an gleichzeitigen Besuchern zu Stoßzeiten.

Welches OS kommt zum Einsatz? Linux, FreeBSD, Windows? Wenn Linux, welche Distribution?

Wenn es ein *NIX OS ist, wirst du mit NginX + php-fpm nicht viel falsch machen können. Auf jeden Fall mit einem minimalen Image beginnen und nur das wirklich gebrauchte installieren.

An Stelle von MYSQL würde ich MariaDB nehmen.
 
Eher interessant wäre die Anzahl an gleichzeitigen Besuchern zu Stoßzeiten.

googleanalytics zeigt mir so ca. 100 Besucher wobei es zu Stoßzeiten auch schonmal 200 sein können.
Die eigene foreninterne Statistik pendelt so zwischen 150-250 Besuchern an gut besuchten Stunden. Das Ganze ist aber ausbaufähig auf das doppelte in relativ kurzer Zeit.

Welches OS kommt zum Einsatz? Linux, FreeBSD, Windows? Wenn Linux, welche Distribution?
Wenn es ein *NIX OS ist, wirst du mit NginX + php-fpm nicht viel falsch machen können. Auf jeden Fall mit einem minimalen Image beginnen und nur das wirklich gebrauchte installieren.
Ubuntu 10.04 mit Plesk, die Standardinstallation für den hosteurope Server

An Stelle von MYSQL würde ich MariaDB nehmen.

Zur Zeit ist mysql 5.1.70 vorinstalliert. Ist MariaDB selbst ggü. einer aktuelleren mysql version zu empfehlen?
 
...und habe jetzt die Möglichkeit den Server von Grund auf optimal einzurichten.

und

Ubuntu 10.04 mit Plesk, die Standardinstallation für den hosteurope Server

widersprechen sich meiner Meinung. Wenn du einen Server optimal einrichten möchtest, dann darfst du eben kein Plesk verwenden. Unter optimal verstehe ich, dass du insb. die zu Verfügung stehenden (Hardware-)Ressourcen best möglich nutzen möchtest. Das kannst du mit Plesk nie erreichen.

Ebenfalls darfst du nicht auf die Standardimages der Hoster zurückgreifen. Die sind quasi als eierlegende Wollmilchsau konzipiert und stellen im Einzellfall nie das Optimum dar. Ressourcenverbrauch spielt keine Rolle. Der Kunde soll im Bedarfsfall lieber auf das nächst größere (und teurere) Produkt umsteigen. Wenn du den Server optimal einrichten möchtest, dann musst du in from scratch neu aufsetzen. Dafür brauchst du natürlich das entsprechende Know-How und auch ein Mindestmaß an Erfahrung.
 
Das installierte Image ist leider denkbar ungünstig gewählt für eine schlanke und aufs notwendigste reduzierte Installation.

Je mehr Pakete, desto mehr potentielle Angriffsflächen. Wenn du wirklich auf absolut minimal aus bist, dann starte mit einem minimalen Image, und installiere nur die notwendigen Pakete über die Konsole. Dabei komplett auf Admintools wie Plesk, Webmin, Froxlor und Co. verzichten.
Das setzt natürlich Erfahrung im Umgang mit der Linux Konsole voraus.

Mit der reinen Installation der notwendigen Pakete ist es aber auch nicht getan. Worker, my.conf usw. muss auch auf die verfügbaren Recourcen angepasst werden.


Wikipedia setzt mitlerweile auf das Drop In Replacement MariaDB an Stelle von MYSQL:
https://blog.wikimedia.org/2013/04/22/wikipedia-adopts-mariadb/
 
Alles klar, danke für die Tipps.

Plesk ist wohl also mit der größte Hemmschuh.

Jedoch muss ich mit meinem Adminkollegen absprechen ob er darauf verzichten will.

Ansonsten wäre doch auch eine Möglichkeit alles mit Plesk einzurichten und es im Nachhinein zu deaktivieren oder wäre das eher suboptimal?

MySql mit MariaDB austauschen, das werden wir dann auf jedenfall beherzigen.

Die ganzen Config-Dateien werden wir natürlich auch anpassen müssen. Pi Mal Daumen beim System von HE mit anvisierten 400-500 gleichzeitigen Zugriffen, gerne auch 7-800 für die Zukunft. Wie sehe da eine mögliche Config aus?

Welche Module können wir getrost "wegschmeissen"?

Am besten setzen wir alles neu auf und fangen beim Minimum an. Aber was wäre wenn wir von diesem System ausgehend einfach die nicht benötigten Module ausbauen wäre ja auch die entgegengesetzte Variante.
 
Es gibt keine beste Config. Mit Erfahrung weiß man, was bei welcher Belastung, wie konfiguriert werden muss.

So lange ihr bei Plesk bleibt, wäre das meiste nur Kosmetik.
 
Du meinst echte gleichzeitige Zugriffe? Ich glaube kaum, dass der vServer dafür überhaupt ausgelegt ist.


Der VServer L wird nicht mal 50 gleichzeitige Zugriffe schaffen ohne das andere User sekunden lang warten müssen.

Das wird auch bedeuteten eine CPU Load von nahezu 100%.
Du wirst sehr schnell eine E-Mail von Hosteurope (von jedem anderen Anbieter) bekommen, das diese hohe CPU Last einzustellen ist.
 
Wir haben bei Hosteurope noch einen alten Virtual Server Managed 5.0 XXL auf dem mehrere Online-Shops liefen. Mit unserem Mitarbeiter-Menu etc. kamen wir auf ca. 120 Zugriffe gleichzeitig zu Stoßzeiten. Das hat den Server dermaßen in die Knie gezwungen, dass wir jetzt auf dezierte Server umgestiegen sind.
Mit guter Forensoftware, einer menge Caching etc. dürften 300-400 noch möglich sein, aber irgendwann wird der vServer am Ende sein.

Vielleicht über einen eigenen vServer für die Datenbank nachdenken oder auf mehr Power setzten.

gruß
 
Top
Code:
top - 16:23:39 up 5 days, 16:36,  1 user,  load average: 0.15, 0.06, 0.01
Tasks:  35 total,   2 running,  33 sleeping,   0 stopped,   0 zombie
Cpu(s):  6.6%us,  1.0%sy,  0.0%ni, 92.4%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2097152k total,   457780k used,  1639372k free,        0k buffers
Swap:  2097152k total,        0k used,  2097152k free,        0k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
17496 orkan85   18   0  173m  18m 7596 S  7.3  0.9   0:00.70 php5-cgi
17413 www-data  15   0  265m  11m 1712 S  0.3  0.6   0:00.01 apache2
    1 root      15   0 23332 1600 1292 S  0.0  0.1   0:01.52 init
 1154 root      15   0 21096 1028  788 S  0.0  0.0   0:03.16 cron
 1182 syslog    15   0 12468  800  612 S  0.0  0.0   0:00.48 syslogd
 1194 root      25   0 13896  684  544 S  0.0  0.0   0:00.00 couriertcpd
 1207 root      25   0  3888  416  336 S  0.0  0.0   0:00.00 courierlogger
 1208 root      25   0 13896  688  544 S  0.0  0.0   0:00.00 couriertcpd
 1212 root      25   0  3888  420  336 S  0.0  0.0   0:00.00 courierlogger
 1229 root      15   0 13896  700  556 S  0.0  0.0   0:00.02 couriertcpd
 1236 root      18   0  4020  612  512 S  0.0  0.0   0:00.00 courierlogger
 1242 mysql     15   0  184m  38m 8116 S  0.0  1.9   0:42.23 mysqld
 1245 root      25   0 13896  684  544 S  0.0  0.0   0:00.00 couriertcpd
 1247 root      25   0  3888  420  336 S  0.0  0.0   0:00.00 courierlogger
 1279 postfix   15   0 76672 1448 1144 S  0.0  0.1   0:06.72 psa-pc-remote
 1349 root      15   0 49284 2580 2028 S  0.0  0.1   0:03.19 sshd
 1411 root      15   0 19544  972  760 S  0.0  0.0   0:00.02 xinetd

Tuning-Primer:
Code:
-- MYSQL PERFORMANCE TUNING PRIMER --
             - By: Matthew Montgomery -

MySQL Version 5.1.70-0ubuntu0.10.04.1 x86_64

Uptime = 5 days 16 hrs 43 min 17 sec
Avg. qps = 0
Total Questions = 82188
Threads Connected = 1

Server has been running for over 48hrs.
It should be safe to follow these recommendations

To find out more information on how each of these
runtime variables effects performance visit:
http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html
Visit http://www.mysql.com/products/enterprise/advisors.html
for info about MySQL's Enterprise Monitoring and Advisory Service

SLOW QUERIES
The slow query log is NOT enabled.
Current long_query_time = 10.000000 sec.
You have 0 out of 82209 that take longer than 10.000000 sec. to complete
Your long_query_time seems to be fine

BINARY UPDATE LOG
The binary update log is NOT enabled.
You will not be able to do point in time recovery
See http://dev.mysql.com/doc/refman/5.1/en/point-in-time-recovery.html

WORKER THREADS
Current thread_cache_size = 8
Current threads_cached = 5
Current threads_per_sec = 0
Historic threads_per_sec = 0
Your thread_cache_size is fine

MAX CONNECTIONS
Current max_connections = 151
Current threads_connected = 1
Historic max_used_connections = 6
The number of used connections is 3% of the configured maximum.
You are using less than 10% of your configured max_connections.
Lowering max_connections could help to avoid an over-allocation of memory
See "MEMORY USAGE" section to make sure you are not over-allocating

INNODB STATUS
Current InnoDB index space = 2 M
Current InnoDB data space = 3 M
Current InnoDB buffer pool free = 0 %
Current innodb_buffer_pool_size = 2 M
Depending on how much space your innodb indexes take up it may be safe
to increase this value to up to 2 / 3 of total system memory

MEMORY USAGE
Max Memory Ever Allocated : 51 M
Configured Max Per-thread Buffers : 405 M
Configured Max Global Buffers : 34 M
Configured Max Memory Limit : 440 M
Physical Memory : 2.00 G
Max memory limit seem to be within acceptable norms

KEY BUFFER
Current MyISAM index space = 2 M
Current key_buffer_size = 16 M
Key cache miss rate is 1 : 413
Key buffer free ratio = 81 %
Your key_buffer_size seems to be fine

QUERY CACHE
Query cache is enabled
Current query_cache_size = 16 M
Current query_cache_used = 7 M
Current query_cache_limit = 1 M
Current Query cache Memory fill ratio = 48.29 %
Current query_cache_min_res_unit = 4 K
MySQL won't cache query results that are larger than query_cache_limit in size

SORT OPERATIONS
Current sort_buffer_size = 2 M
Current read_rnd_buffer_size = 256 K
Sort buffer seems to be fine

JOINS
Current join_buffer_size = 132.00 K
You have had 143 queries where a join could not use an index properly
You should enable "log-queries-not-using-indexes"
Then look for non indexed joins in the slow query log.
If you are unable to optimize your queries you may want to increase your
join_buffer_size to accommodate larger joins in one pass.

Note! This script will still suggest raising the join_buffer_size when
ANY joins not using indexes are found.

OPEN FILES LIMIT
Current open_files_limit = 1024 files
The open_files_limit should typically be set to at least 2x-3x
that of table_cache if you have heavy MyISAM usage.
Your open_files_limit value seems to be fine

TABLE CACHE
Current table_open_cache = 64 tables
Current table_definition_cache = 256 tables
You have a total of 555 tables
You have 64 open tables.
Current table_cache hit rate is 0%
, while 100% of your table cache is in use
You should probably increase your table_cache
You should probably increase your table_definition_cache value.

TEMP TABLES
Current max_heap_table_size = 16 M
Current tmp_table_size = 16 M
Of 12386 temp tables, 40% were created on disk
Perhaps you should increase your tmp_table_size and/or max_heap_table_size
to reduce the number of disk-based temporary tables
Note! BLOB and TEXT columns are not allow in memory tables.
If you are using these columns raising these values might not impact your
ratio of on disk temp tables.

TABLE SCANS
Current read_buffer_size = 128 K
Current table scan ratio = 32 : 1
read_buffer_size seems to be fine

TABLE LOCKING
Current Lock Wait ratio = 0 : 82464
Your table locking seems to be fine
 
Alle oben gemachten Vorschläge wurden demnach in den Wind geschlagen und nun soll MYSQL optimiert werden?

Bevor die strukturellen Probleme nicht angegangen wurden, macht der Rest nicht viel Sinn.
 
Alle oben gemachten Vorschläge wurden demnach in den Wind geschlagen und nun soll MYSQL optimiert werden?

Bevor die strukturellen Probleme nicht angegangen wurden, macht der Rest nicht viel Sinn.

Wir haben uns überlegt erst einmal MySQL draufzulassen ja.
Von Plesk hingegen haben wir uns verabschiedet.

Es mag ja durchaus sein, dass mariadb besser ist als mysql aber grds. lässt sich ein Server auch damit optimieren.

apache2.conf
Code:
Timeout 300
KeepAlive Off
MaxKeepAliveRequests 1000
KeepAliveTimeout 2
<IfModule mpm_prefork_module>
StartServers       10
MinSpareServers    10
MaxSpareServers    20
MaxClients        256
MaxRequestsPerChild   8000
<IfModule mpm_worker_module>
StartServers       2
MaxClients        150
MinSpareThreads    25
MaxSpareThreads    75
ThreadsPerChild      25
MaxRequestsPerChild   8000
eventmodule
StartServers 2
MinSpareServers    25
MaxSpareServers    75
Threadlimit 25
MaxClients        256
MaxRequestsPerChild   8000

Gibt es da etwas zu optimieren oder ist das in Ordnung?
 
Wird schon seinen Grund haben, warum HE wieder dedizierte offensiv anbietet. Ich hatte ja mal ein Jahr lang einen Rootserver (diese Parallels Barebone Virtualisierung) und das war nicht sehr rund.

Die VirtualServer selbst sind ja lange genug am Start um die Ecken und Kanten bei Virtuozzo im Griff zu haben.

Zur Optimierungsfrage:
Wieviel Speicher nimmt denn jetzt ein Apache2 Prozess/Thread ein?

Und mit den gleichzeitigen Zugriffen sollte auch überdacht werden. Google Analytics dürfte ja nicht die gleichzeitigen Zugriffe darstellen, sondern die Besucher, die eine Session auf der Website haben.

Wenn es wirklich 500 gleichzeitig sein sollen, dann dürfte es bei Apache2+ PHP+MySQL wohl auch mit dem 6.0 MAX ein Geduldsspiel werden.

BTW. Hat jemand einen 6.0 MAX mal getestet? Wie viele Virtuozzocontainer dürften sich da einen Hostnode teilen?
 
tomasini übertreibt ein bisschen. Du musst da nichts from scratch installieren. Es genügt, wenn du das Debian (oder CentOS oder was anderes das dir gefällt) Minimal-Image von deinem Provider installierst und dann alles so anpasst, wie du es brauchst.

Dazu genügt es auch, wenn man mit ein bisschen Verstand den Tutorials im Internet folgt. Aber eben bedacht - nicht einfach Copy Paste sondern auch überlegen was der Befehl denn nun genau macht.

http://www.thomas-krenn.com/de/wiki/Hauptseite ist recht empfehlenswert in dem Zusammenhang. Auf Plesk würde ich allerdings allemal verzichten, da stimme ich zu. Das hat erstmal einen ordentlichen Eigenverbrauch an Leistung und bietet dann wiederum eine Menge an Einstellungen, aber nicht die, die gerade zum optimieren wichtig sind. Zudem Plesk, soweit ich weiß, noch kein Nginx (außer als Reverse-Proxy) unterstützt <- aber da kann ich mich auch irren. Habe das seit Ewigkeiten nicht mehr verwendet. :)
 
Plesk unterstützt Nginx.
Was nichts daran ändert, dass es als Lerntool unpassend ist, sondern seine Stärken insbesondere für Kunden ausspielt, da sie damit ihren eigenen Space leichter verwalten können und viele Kunden sich mit Plesk eben schon auskennen.

Der Anbieter selbst muss aber auch ohne Plesk klar kommen.
 
Wenn du den Server optimal einrichten möchtest, dann musst du in from scratch neu aufsetzen.
Am besten noch Linux selber schreiben oder nur Bytecode/Assembler benutzen, wa? 8)
Bitte... Irgendwo muss doch schluss sein, wo man sich nicht Tage/Wochen nimmt, ein System zurechtzubasteln.
Nu aber 'mal ernsthaft. Diese Zusammengefrickelten Images von verschiedenen Anbieter (hier fällt auch IP-Projects, Hetzner, Webtropia, etc. darunter) gefallen mir auch nicht. Wenn ich schon einen dedizierten Server verwende, will ich auch, dass er richtig läuft und dafür nehme ich ein paar Stunden Arbeit bei einer Neuinstallation einfach 'mal hin, bestell mir 'ne KVM mit Virtual Drive Möglichkeit und gut is'. Anders sieht es aber eben wieder bei virtuellen Servern aus, wo die Hardware sowieso immer dieselbe bleibt und eine Installation in gerade 'mal wenigen Sekunden durch sein muss.

Alderon said:
Plesk unterstützt Nginx.
Ja, wie maltris aber bereits schrieb nur als Reverse-Proxy konfiguration und daher auch wieder größtenteils (bis auf kleine Scriptkiddie-DoS-Abwehr) hinfällig und zum Scheitern verurteilt.

Poyraz50 said:
Von Plesk hingegen haben wir uns verabschiedet.
Gute Entscheidung. Es mag ja durchaus sein, dass Plesk einfach 'mal benötigt wird, da wo 'man eventuell an Personal sparen muss und das System so gut wie vollautomatisiert, bis auf Patches und Updates, etc. laufen soll. (Stichwort: Automatische Einrichtung in wenigen Sekunden mit WHMCS verbunden und Setup ähnlich wie dieses). Wenn man nun Plesk und die Möglichkeit hat, viel Ressourcen zu verwenden und 'mal auf Performance verzichten kann, dann solle man doch Plesk verwenden. Sagt doch niemand was dagegen. Einige Leute werden da schon die Augen verdrehen aber es ist einfach viel angenehmer. Da, wo allerdings Performance und höchste Sicherheit gefragt ist, steige man bitte auf ein eigenes Setup (es muss nun nicht Linux From Scratch sein, es geht auch, 'mal den Anbieter nach einer KVM mit Virtual Media bzw. ISO-Einbindungs-Möglichkeit zu fragen), wo man dann zwar einige Stunden oder eventuell auch Tage damit verbringt, das Teil einzurichten und dann später ein paar 'mal zu warten, aber es lohnt sich echt.
 
Back
Top