Dieses Posting ist ein Statement von mir als Sysadmin von Sylon Hosting / Unit.
Im Zuge des Upgrades von MySQL 3.0.xx auf 4.0.18 habe ich mir die Performance
von MySQL etwas genauer angesehen, da euer mysqld plusminus gleichviel CPU Zeit
verbraucht, wie der fuer die restlichen (~150) Kunden.
Also hab ich ein bisschen Doku gewaelzt, in der Hoffnung das ich den ganzen
Spass noch etwas optimieren kann. Und daran habe ich momentan gerade gearbeitet,
bin aber nicht wirklich zu einem brauchbaren Ergebnis gekommen.
Ein Pagehit auf /forum.php gibt 300 SQL Querys. Ein 'mark all posts read' gibt
30'000 SQL Querys. /forum.php abrufen dauert knapp 2s.
Daraufhin habe ich mal etwas mit einem Benchmarkprogramm namens Siege
gearbeitet, um zu sehen was so passiert.
# siege -u "http://www.zooomclan.org/forum.php"
** Siege 2.09
** Preparing 10 concurrent users for battle.
The server is now under siege...done
Transactions: 30 hits
Elapsed time: 60.00 secs
Data transferred: 570566 bytes
Response time: 16.33 secs
Transaction rate: 0.50 trans/sec
Throughput: 9509.43 bytes/sec
Concurrency: 8.17
Successful transactions: 30
Failed transactions: 0
In 60 Sekunden schafft er 30 Pageviews, bei 10 parallelen Zugriffen.
Die Maschine ist waehrend so einem Benchmark komplett am Anschlag:
Die CPU ist nicht am Daemchen drehen, waehrend sie auf Disk wartet (cpu, wa),
sondern die ganze Zeit am Rechnen und CS durchfuehren (system cs, cpu us, cpu sy
Disk IO gibts keinen (bi, bo, da alle Datensaetze im RAM sind), 600MB Memo
ry werden von Linux als Disk-Cache benutzt, d.h. wird nicht von Programmen
benoetigt.
Fuer mich ist dsa der Zeitpunkt, wo ich sagen muss, das ich nicht wirklich
weiss was ich auf serverseite noch optimieren kann, ausser 'mehr Hardware'. 300
Querys / Pagehit schafft die Maschine nicht innerhalb vernuenftiger Zeit.
Evtl. fehlen nur die richtigen Indices, oder durch Optimierung liesse sich die
Anzahl der Querys reduzieren, etc. pp.
Worum es mir also nun geht:
* Ist der momentane Zustand fuer euch ein Problem?
(Fuer uns ist es kein akutes Problem, aber es frisst einfach mehr als die
Haelfte der Ressourcen die wir zur Verfuegung haben)
* Waehrt ihr an einer Zusammenarbeit zur Verbesserung des momentanen Zustandes
interessiert?
Ein Pagehit auf /forum.php gibt 300 SQL Querys. Ein 'mark all posts read' gibt
30'000 SQL Querys. Der "mark all posts read" kann man nicht reduzieren; aber der passiert auch selten.
Ich werd mal schauen ob ich weniger Querys machen kann bei der normalen Bedienung.
Du koenntest die PostingIDs direkt in SQL schreiben (mehrere auf einmal) anstelle einen Loop ueber das SQL Query zu machen, und pro ID ein Query absetzen. Ich denke, das wuerde einiges bringen, denn im Moment siehts so aus aus:
Also, MySQL hat gute Doku. Und ich bin ueberzeugt das du das schneller weisst. Ich bin von so kompliziertem Zeugs naemlich ueberfordert. Das ist was fuer Entwickler ;)
Waer mal soweit vorbereitet. InnoDB initialisieren kann er nur mit nem neustart des Daemons, -> ~2-3 Minuten Downtime. Wenns euch recht ist, kann man jetzt machen, sonst mach ichs heute Abend.
Es geht darum dass bei ner Transaktion die inserts in einem rutsch gemacht werden und darum nicht fĂŒr jeden einzelnen ein write lock gerupft werden muss.
Hast Du aber mal untersucht ob dann nicht durch InnoDB das ganze noch wurstliger wird? ich kenne keine Performancevergleichen zwischen den verschiedenen Table Typen, aber könnt ja sein..
Da Ihr doch recht gerne spezielle sachen macht (eigener imapd, eigener mysqld) wĂ€re es fĂŒr euch doch eigentlich recht praktisch wenn ihr einen eigenen Server hĂ€ttet...
Aus aktuellem Anlass mache ich euch deshalb ein Spezialangebot: Housing 1 HE fĂŒr 120.00 statt 150.00.
Details auf http://sylon.net/serverhousing.html.
Wegen der Hardware kann man sicher noch schauen was es so gibt...
Da Ihr doch recht gerne spezielle sachen macht (eigener imapd, eigener mysqld) wĂ€re es fĂŒr euch doch eigentlich recht praktisch wenn ihr einen eigenen Server hĂ€ttet...
Aus aktuellem Anlass mache ich euch deshalb ein Spezialangebot: Housing 1 HE fĂŒr 120.00 statt 150.00.
Details auf http://sylon.net/serverhousing.html.
Wegen der Hardware kann man sicher noch schauen was es so gibt...
Da Ihr doch recht gerne spezielle sachen macht (eigener imapd, eigener mysqld) wĂ€re es fĂŒr euch doch eigentlich recht praktisch wenn ihr einen eigenen Server hĂ€ttet...
Aus aktuellem Anlass mache ich euch deshalb ein Spezialangebot: Housing 1 HE fĂŒr 120.00 statt 150.00.
Details auf http://sylon.net/serverhousing.html.
Wegen der Hardware kann man sicher noch schauen was es so gibt...
waer vielleicht schon recht lustig, aber vorher sollte die finanzenfrage ein fuer alle mal geklaert werden...
(also wenn ich die frage fuer mich mit <50.- klaeren kann, waere ich dabei... )
Server Housing wĂ€r nicht ĂŒbel, wenn es nicht so Teuer wĂ€hre.
120CHF wÀre 3x so viel wie jetzt oder?
Ausserdem mĂŒsste sich jemand um die Hardware kĂŒmmern und das ganze administrieren.
Die gibts sonst auch um die 1500-1600CHF (inkl. Reserve fuer 2. CPU, 2. HD (wobei ich da schwer empfehle mit nem RAID1 zu starten), mehr RAM) neu zu kaufen.
Frag elian, evtl. kann man auch was mit Finanzierung machen.
Mit dem Jetzigen Angebot bin ich nicht allzu unzufrieden.
Ein besseres Angebot hab ich leider noch nicht. Da sich maverick bereit erklĂ€hrt hat uns bei der Administration gröber zu unterstĂŒzen wĂ€r ein root Server was schönes. Leider sind die Dinger viel zu teuer.
Ich kann mich mal damit versuchen, wenn mir Steff dabei hillft.
Die Fraggeria könnte ein guter Event dazu sein. Gibts da INet, oder mĂŒssen wir Zorg zĂŒgeln?
nein, inet wird's keines geben an der fraggeria. da die hĂŒtte noch keinen telefonanschluss hat, war es der swisscom in der gegebenen zeit nicht möglich, einen tauglichen telefonanschluss und adsl einzurichten...
aber vielleicht hat ja jemand von euch noch was krasses rumstehen, um da irgendwie ne inetcon hinzuziehen.
Sorry wenn ich das so sage, aber Du bist auch eine elende Schwuchtel :)
Die folgende Geschichte ist frei erfunden.
TilkĂ€mber ist ein Schphoun in PicĂ€ren. In PicĂ€ren ist man immer freundlich, und gibt sich gleich mit beiden HĂ€nden die Hand, sobald man sich sieht. Es regnet dort immer in Strömen und auch winden tut es so ziemlich den ganzen Tag lang. Deshalb sagen auch alle von PicĂ€ren, dass es dort relativ nass sei. TilkĂ€mber aber steht unter einem Schirm, und grĂŒsst niemanden, der vorbeikommt. Sonst wĂŒrde nĂ€mlich sein Schirm weggewindet und er nass werden. Dann sagt er seinen Kollegen: "Also i find, es isch gar nöd so nass z'PicĂ€ren."
*..chtle*
Wir werden die Sache wieder mal eingehend behandeln an der Fraggeria... Jaja, ich hab's geahnt, irgendwann wird der Moment schon noch kommen, der Moment, wo Zorg frei werden wird...
Du kannst natĂŒrlich gerne mitreden, sofern Du vorbeikommst.
Es gehen ja GerĂŒchte um, dass Du vielleicht sogar "mal reinschauen wĂŒrdest" am Samstag...
Und was soll diese Metapher?? Willst du mir sagen dass ich bei mir zuhause einen Rootserver mit 1Mbit Leitung ins Inet habe und den euch nicht gönnen wĂŒrde?
Selber schwuchtle.
Ich werde vielleicht FR Nacht an die Fraggeria kommen und/oder am Samstag Morgen. Tut mir leid dass mir sachen dazwischen gekommen sind.
Also, ich hab mal mit Elian geredet wie das preislich aussieht:
dl140, 1gb ram, 2 x 80gb disk:
230.00/monat
dl320, 1.1 gb ram, 2 x 80 gb:
280
320er sind auch ide
Die Preise sind exkl. Housing (also +120 CHF).
Einen DL140 hab ich selber, bin mit der Hardware zufrieden. Der DL320 ist einfach noch n Stueck groesser, hat Standardmaessig Floppy/CD/IDE HW RAID. Der Aufpreis lohnt sich IMHO ueberhaupt nicht, da Linux Software RAID gut funktioniert.
Seid Ihr schwul? Wir haben sicher mindestens 30 Leute hier, die fĂŒr einen richtigen, fetten Unix-Account, und die Möglichkeit, ihre private Seite draufzuwerfen, 5 oder 10 Stutz im Monat zahlen wĂŒrden.
Und ausserdem haben wir dieses Konzept schon an mindestens 23 Zorgtreffs besprochen und in 5 Protokollen zu Wort gebracht. Oder auch weniger.
Àhm mav, könntest du echt mal bei gelegenheit den bÀnschmark nochmals laufen lassen...
habe die rekursive-i-will-usÀfindÀ-wos-no-unglÀsni-posts-hÀt funktion uskommentiert...und
au das jedĂ€ einzeln post nochher nomol prĂŒĂ€ft wird au.
ich meinte: ist es nicht möglich per join die tables so zu verknĂŒpfen das nachher im datensatz steht "read/unread".
lastlogin date ist genau so baschtelig...und es ist recht mĂŒhsam um auch den ĂŒberblick zu wahren.
naja. ich will jetzt hier wirklich nicht so tun, als ob ich da den durchbruch erzielen koennte...
aber waere sicher interessant, weil das kratzt mich eher als reines webdesign mit php.
Darf man das dann auch so wie in der Praxis machen?
Sprich die App in miesem, unoptimierten Java Code schreiben, und dann einfach Hardware hinterherschmeissen bis es schnell ist?
Ich hab den Code letztes Mal aufgeworfen, und das kam sicherheitstechnisch nicht gut.
Also macht es jetzt ein Coder. Ich bin nĂ€mlich zu faul dafĂŒr und will bald mal pennen gehn. Mein Zip-File sollte noch rumhĂ€ngen, dort kann man ja einfach die kritischen Characters rausblasen und es wieder zum Runterzug anbieten.