Toon posts:

Server upgrade

Pagina: 1
Acties:
  • 149 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb een vraag namens een grotere groep beheerders van een textbased MMORPG. Op dit moment hebben we een kleine 10k leden die dagelijks zorgen voor 2.5k unieke bezoekers en 1.5m pageviews. Niet bepaald een standaard verhouding voor een website dus en daarom een vrij uniek geval. Dataverkeer is niet de bottleneck, dat zit zo rond de 100kb/s. De database grootte is een kleine 40mb (400k records op een 100 tabellen).

De load van de CPU (1x P4 3.0 Ghz dual core) zit de hele dag door rond de 75%. Het geheugen zit meestal rond de 50% (1x 1024MB DDR) maar zodra er een cron wordt gedraaid schiet dit snel naar de 100% (in die cron worden allemaal temp tables gemaakt en berekeningen uitgevoerd). De swap file is continu zo'n 240mb met pieken naar de 500mb bij cronjobs. Verder is er 6 GB harddisk ruimte in gebruik (zal wel wat groeien maar niet boven de 36GB verwacht ik op dit moment).

Mysql technisch is een hoop al geoptimaliseerd en gecached dus daar valt niet iets rendabels meer aan te verbeteren.

De oude specs:
1x Intel P4 3.0 Ghz dual core
1x 1024MB DDR
2x 120GB SATA (7.200rpm)
1x RAID-1 Controller
2x 1Gbit netwerkcontroller

De nieuwe specs
2x Intel Xeon 2.0 Ghz dual core
4x 1024MB DDR
2x 36GB SCSI (10.000rpm)
1x RAID-1 Controller
2x 1Gbit netwerkcontroller

Besturingsssyteem: Centos 4.0

Nu heb ik een aantal vragen:
- Lost dit het probleem goed (!) op?
- Wat zou de nieuwe server mogen kosten inclusief managed contract en een engineer die klusjes voor je uitvoert? (ons klinkt het aanbod vrij goed, maar we willen een onafhankelijke mening van derden)
- Hebben jullie nog goede tips voor de instellingen van de nieuwe server?

* ik hoop dat er genoeg informatie in staat, zo niet zou ik graag willen weten wat er bij moet dan plaats ik dat :D

[ Voor 6% gewijzigd door Verwijderd op 13-08-2006 12:18 ]


  • MAX3400
  • Registratie: Mei 2003
  • Laatst online: 27-01 18:54

MAX3400

XBL: OctagonQontrol

Ik denk dat je sowieso nu aan het inleveren bent op je HDD-ruimte. Aangezien je niet specificeert hoeveel je daadwerkelijk nodig hebt, zou 2x 36GB geen optie zijn als je nu 2x 120GB hebt.

Verder zijn de Xeon's gewoon supreme aan de P4's en denk ik dat je misschien zelfs met een single Xeon uit de voeten kan, voorzien van 2x 1024MB ECC geheugen.

De rest van je vragen zijn heeeeeel algemeen over "klusjes" en "tips"; aangezien je al niet eens een OS hebt genoemd, ben je per direct al heel beperkt in je zoektocht naar een klusjesman (whatever that may be) en tips.

Ik zou je eerst adviseren om de huidige server eens offline te gooien een kwartier en daar eens 1024MB RAM bij te prikken en kijken wat er dan gebeurt. Voor de rest kan je cronjobs volgens mij inperken in hun geweld en dus je CPU lager dan 100% houden en dus de site/dbase beschikbaar voor anderen.

*edit*
Over contracten en klussen; daar zijn zo ontzettend veel smaken in te bedenken. Het lijkt me zinvol dat je contact zoekt met een aantal hosting-bedrijven in NL nadat je heel duidelijk hebt gespecificeerd wat je eisen/wensen zijn.

[ Voor 13% gewijzigd door MAX3400 op 13-08-2006 12:17 ]

Mijn advertenties!!! | Mijn antwoorden zijn vaak niet snowflake-proof


Verwijderd

Topicstarter
Ik heb de startpost nog wat uitgebreid met gegevens die je vroeg. Verder dan de vraag van de prijs iets duidelijker: wat zou dit mogen kosten als dedicated server (zonder het managed contract om het simpel te houden)?

  • MAX3400
  • Registratie: Mei 2003
  • Laatst online: 27-01 18:54

MAX3400

XBL: OctagonQontrol

Dual Xeon 3.0GHz
2GB RAM
2x 73GB SCSI 10000RPM RAID1
2 NICS

Reken ergens rond de 1700-2200 Euro; afhankelijk van de fabrikant, support-contract en overige. Hierbij ben je dan nog zelf verantwoordelijk om 'm te installeren met een OS (zit er dan ook niet bij).

Ga een shoppen bij Dell of HP; lekker online een server in elkaar zetten. Maar lees ook eens reviews van de Xeons en/of Opterons want gezien je huidige load kan je met 1 CPU net zo goed draaien.

En voor je OS: ik zou standaardiseren naar een bekende Linux-variant zoals RedHat of Fedora; daarmee kan je makkelijker terecht bij hosts voor support.

[ Voor 14% gewijzigd door MAX3400 op 13-08-2006 12:30 ]

Mijn advertenties!!! | Mijn antwoorden zijn vaak niet snowflake-proof


Verwijderd

Topicstarter
Moet even vermelde dat we tot nu toe met zo'n 3-4k leden per maand groeien. Vandaar denk ik dat de host waar we nu zitten dit voorstel heeft gedaan met 2 cpu's. Het is een dedicated server dus het gaat niet zozeer om de aanschaf, maar om een huurbedrag. Dit is inclusief full-managed contract en een goede SLA. Zal even ook informeren bij wat andere hosters, maar verwacht dat die rond dezelfde prijs zitten.

Verwijderd

Topicstarter
Trouwens ik kom er net achter dat het 73GB SA-SCSI schijven zijn in RAID-1 dus het opslag probleem is ook niet van toepassing. Iemand nog goede tips?

  • MAX3400
  • Registratie: Mei 2003
  • Laatst online: 27-01 18:54

MAX3400

XBL: OctagonQontrol

Ik zou dan toch zeggen: 2GB RAM, 1 Xeon CPU en 15K schijven in RAID1 maar dat is dus wel even afhankelijk van wat je met je cronjobs kan doen in scheduling en prioritisering.

Mijn advertenties!!! | Mijn antwoorden zijn vaak niet snowflake-proof


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12-02 13:44
Is het verstandig om met 1 server te blijven werken? Wat nu als je moederbord bijvoorbeeld kapot gaat? Oftwel: maak eens een serieuze inventarisatie van de risico's en vul daar de kosten van in. Vervolgens kan je kijken wat er precies in je budget past.

  • MAX3400
  • Registratie: Mei 2003
  • Laatst online: 27-01 18:54

MAX3400

XBL: OctagonQontrol

djluc schreef op maandag 14 augustus 2006 @ 17:10:
Is het verstandig om met 1 server te blijven werken? Wat nu als je moederbord bijvoorbeeld kapot gaat? Oftwel: maak eens een serieuze inventarisatie van de risico's en vul daar de kosten van in. Vervolgens kan je kijken wat er precies in je budget past.
Gedeeltelijk mee eens; redundancy in een dedicated data-center is meestal intern makkelijker te regelen (dmv huur-server op afroep) dan een 2e server zelf kopen. De kosten/baten voor een eigen 2e server wegen niet op tegen "een kwartiertje downtime waarin we de schijven omprikken".

Mijn advertenties!!! | Mijn antwoorden zijn vaak niet snowflake-proof


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12-02 13:44
Als je toch load problemen hebt zou je bijvoorbeeld 1 server kunnen gebruiken als afbeeldingenserver ter voorbeeld. Je lost dan en je load probleem op, en je hebt een spare server welke je ook geschikt kan maken om de applicatie zelf te hosten.

  • MAX3400
  • Registratie: Mei 2003
  • Laatst online: 27-01 18:54

MAX3400

XBL: OctagonQontrol

djluc schreef op maandag 14 augustus 2006 @ 17:18:
Als je toch load problemen hebt zou je bijvoorbeeld 1 server kunnen gebruiken als afbeeldingenserver ter voorbeeld. Je lost dan en je load probleem op, en je hebt een spare server welke je ook geschikt kan maken om de applicatie zelf te hosten.
Of je clustert er twee... De resources by default verschillende servers toewijzen en als eentje eruitklapt, neemt de ander het over (alhoewel dit een Microsoft-based uitspraak is) en ik niet weet hoe het onder Linux fungeert.

Mijn advertenties!!! | Mijn antwoorden zijn vaak niet snowflake-proof


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12-02 13:44
Een active-active cluster zou inderdaad ook een leuke oplossing kunnen zijn. Al moet je dan wel opletten wat betreft de clustering van je database. Bestanden is niet een erg groot probleem.

  • Lagerpils
  • Registratie: Maart 2000
  • Laatst online: 16-12-2025
Verwijderd schreef op zondag 13 augustus 2006 @ 12:04:
De oude specs:
1x Intel P4 3.0 Ghz dual core
1x 1024MB DDR
2x 120GB SATA (7.200rpm)
1x RAID-1 Controller
2x 1Gbit netwerkcontroller

De nieuwe specs
2x Intel Xeon 2.0 Ghz dual core
4x 1024MB DDR
2x 36GB SCSI (10.000rpm)
1x RAID-1 Controller
2x 1Gbit netwerkcontroller
Je zegt dat MySQL technisch al geoptimaliseerd is maar gezien de specs van je oude server lijkt het of je maar twee schijven hebt draaien in raid-1 wat betekent dat je data files en je logs effectief op dezelfde schijf staan. Dit is niet echt optimaal en in je nieuwe server gaat hetzelfde gebeuren zij het met 10.000rpm schijven. Dit zal best wat prestatie verbetering opleveren (als dit inderdaad de bottleneck is) maar misschien doet je oude server het wel net zo goed als je nog wat schijven toevoegt en je data en logs op verschillende fysieke schijven opslaat.

Verwijderd

Topicstarter
Heb het daar al eerder over gehad met de hoster waar ik het bij zou willen gaan huren. Deze gaven aan dat een upgrade van enkel de processor of hdd's geen oplossing zou zijn op de langere termijn. Het is namelijk zo dat alle load (90-99%) van de mysql afkomt. De reden daarvoor is simpel: het spel is praktisch gezien één grote sql query :9 Het idee om op 2 losse servers te gaan draaien hebben we ook al eens bekeken, maar toen kwamen we tot de conclusie dat waarschijnlijk het rsyncen tussen de 2 servers meer load zou veroorzaken dan dat het clusteren zou oplossen.

Bedankt voor jullie tips allemaal, als iemand nog iets op/aan te merken heeft hoor ik het graag :)

Verwijderd

Ik ben het hier helemaal mee eens. Ongeacht het OS wat je draait het opsplitsen levert veel winst op. Waarom maakt je geen testopstelling waar je het OS en de database op aparte schijven zet ?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
How to optimize disk seek time on your MySQL 5 server?
To optimize disk seek time on your server, you can try distributing the data onto more than one hard disk drive.

Using BENCHMARK() function (Output shows 10000000 simple additions can be performed in 0.93 seconds)

    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 558 to server version: 5.0.15-standard

    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

    mysql> SELECT BENCHMARK(1000000,1+1);
    +------------------------+
    | BENCHMARK(1000000,1+1) |
    +------------------------+
    | 0 |
    +------------------------+
    1 row in set (0.07 sec)

    mysql> SELECT BENCHMARK(10000000,1+1);
    +-------------------------+
    | BENCHMARK(10000000,1+1) |
    +-------------------------+
    | 0 |
    +-------------------------+
    1 row in set (0.93 sec)

Estimating the performance by counting disk seeks
According to MySQL, using B-tree indexes, you need this many seeks to find a row:

    log(row_count) / log(index_block_length / 3 * 2 / (index_length + data_pointer_length)) + 1

Note that in MySQL, an index block is normally 1K (1024 bytes) . The data pointer is usually 4 bytes. According to MySQL,

    For a 500,000-row table with an index length of 3 bytes (medium integer), the formula indicates log(500,000)/log(1024/3*2/(3+4)) + 1 = 4 seeks. This index would require storage of about 500,000 * 7 * 3/2 = 5.2MB (assuming a typical index buffer fill ratio of 2/3), so you probably have much of the index in memory and so need only one or two calls to read data to find the row.

Verwijderd

Verwijderd schreef op zondag 13 augustus 2006 @ 12:04:
Nu heb ik een aantal vragen:
- Lost dit het probleem goed (!) op?
- Wat zou de nieuwe server mogen kosten inclusief managed contract en een engineer die klusjes voor je uitvoert? (ons klinkt het aanbod vrij goed, maar we willen een onafhankelijke mening van derden)
- Hebben jullie nog goede tips voor de instellingen van de nieuwe server?

* ik hoop dat er genoeg informatie in staat, zo niet zou ik graag willen weten wat er bij moet dan plaats ik dat :D
Ideaal zou natuurlijk zijn dat je web en database zou scheiden op 2 fysieke servers. Maar als ik het goed begrijp heb je momenteel een dedicated server bij een host die de server in eigendom heeft en er ook het onderhoud ervan doet. En nu ga je upgraden naar een zwaardere server bij diezelfde host. Dus is dit niet meteen een optie, tenzij je de huidige server behoudt en de nieuwe configuratie inzet als database server. Veel hangt uiteraard af van je budget.

Indien je je afvraagt of je host dit aan een competitieve prijs levert, kan je ik je aanraden om eens een kijkje te nemen op webhostingtalk.nl, daar vind je een hoop hosting providers bij elkaar. Plaats een keer een aanvraag voor offerte in het juiste forum daar. Je zal zeker een aantal aanbiedingen krijgen en dan weet je meteen hoever je financieel staat. Wel duidelijk stellen wat juist je noden zijn, eigen server plus colocation of dedicated, wat moet er juist onderhouden worden door de hoster, enz.
MAX3400 schreef op zondag 13 augustus 2006 @ 12:29:
En voor je OS: ik zou standaardiseren naar een bekende Linux-variant zoals RedHat of Fedora; daarmee kan je makkelijker terecht bij hosts voor support.
CentOS is niets minder dan de opensource versie van Redhat, dus dat zit wel goed. Wordt trouwens vaak gebruikt in de hosting business.
Verwijderd schreef op dinsdag 15 augustus 2006 @ 10:20:
Heb het daar al eerder over gehad met de hoster waar ik het bij zou willen gaan huren. Deze gaven aan dat een upgrade van enkel de processor of hdd's geen oplossing zou zijn op de langere termijn. Het is namelijk zo dat alle load (90-99%) van de mysql afkomt. De reden daarvoor is simpel: het spel is praktisch gezien één grote sql query :9 Het idee om op 2 losse servers te gaan draaien hebben we ook al eens bekeken, maar toen kwamen we tot de conclusie dat waarschijnlijk het rsyncen tussen de 2 servers meer load zou veroorzaken dan dat het clusteren zou oplossen.

Bedankt voor jullie tips allemaal, als iemand nog iets op/aan te merken heeft hoor ik het graag :)
Zoals ik hierboven al zei, zou het veel interessanter zijn om web en database te scheiden op twee servers. Indien dit te prijzig is, kan je misschien een kijken om twee gescheiden disk arrays in te bouwen om toch al database en logs te scheiden.

Indien je volledig wil gaan load-balancen zit je met een nog hogere kostprijs aangezien je ook nog een toestel/server nodig hebt die de loadbalancing doet.

Verwijderd

Topicstarter
Het budget is eigenlijk al vrij krap om deze server te kopen, maar 2 losse servers is nog duurder dus vandaar dat we kozen voor 1 flinke server die eigenlijk niet echt moeite zou moeten hebben met het spel wat erop draait.

Nog even een vraag over je dubbele disk-array. Bedoel je dan dat we eigenlijk 2x RAID-1 moeten draaien met 4x 73GB schijven?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Lagerpils schreef op maandag 14 augustus 2006 @ 19:54:
Dit zal best wat prestatie verbetering opleveren (als dit inderdaad de bottleneck is) maar misschien doet je oude server het wel net zo goed als je nog wat schijven toevoegt en je data en logs op verschillende fysieke schijven opslaat.
Verwijderd schreef op zondag 13 augustus 2006 @ 12:04:
De database grootte is een kleine 40mb (400k records op een 100 tabellen).
't Lijkt me niet dat de I/O nu een bijzonder groot probleem is, tenzij er vreselijk veel geschreven wordt...

Desalniettemin is het nuttig om iets meer van je belasting te weten, voor dat je op de bonne foi een nieuwe doos aanschaft. Als ik het zo inschat heb je vooral een processing-gerelateerde belasting, want met een goed geconfigureerde database van slechts 40MB lijkt het me nogal onwaarschijnlijk dat je I/O de bottleneck is.
Wel kan je nog inefficiente datatoegang natuurlijk als je suboptimale indexen hebt toegepast.

Het enige wat dan echt zoden aan de dijk zal zetten is een krachtigere cpu of meer cpu's (mits je applicatie dat schalingstechnisch toelaat, maar een standaard webapp doorgaans wel) en voor zover mogelijk sneller geheugen. Er van uit gaande dat je het over de nieuwe Woodcrest-processors hebt en dus ook over FB-dimm geheugen zal je er op dat gebied iig wel op vooruit gaan :)

Of je meer of snellere disks nodig hebt zal afhangen van of je disks nu veel gebruikt worden...
Verwijderd schreef op woensdag 16 augustus 2006 @ 00:37:
CentOS is niets minder dan de opensource versie van Redhat, dus dat zit wel goed. Wordt trouwens vaak gebruikt in de hosting business.
RedHat en Fedora zijn ook open source ;) Je bedoelt waarsch dat het weinig verschil met de RedHat Enterprise-versies, behalve dan dat CentOS gratis is.

[ Voor 11% gewijzigd door ACM op 16-08-2006 18:23 ]

Pagina: 1