Mosher
2015-08-27, 09:40:11
Hallo, ich bräuchte mal eine kleine Einschätzung von euch:
Ich habe eine Applikation, in der pro Benutzer ca. 50-100 Bilder angezeigt werden sollen. "Bilder" will ich jetzt erst mal stehen lassen und noch nicht weiter bezüglich Größe, Auflösung etc. konkretisieren. Gehen wir einfach mal von irgendwas durchschnittlichem aus.
Diese Applikation greift im Prinzip auf eine MySQL-Datenbank zu, ferner eine Tabelle mit lediglich 3 Spalten:
ID (Primärschlüssel) (int)
URL zum Bild (VARCHAR)
TimeStamp (Unixzeit)
der Einfachkeit halber wird immer die komplette Tabelle abgefragt, später wird vermutlich nach TimeStamp gefiltert und nur neuere Einträge berücksichtigt.
In der Applikation werden dann aus allen verfügbaren IDs 50-100 ausgewürfelt, und die entsprechenden Bilder über die URLs geladen. Die Bilder selbst werden sich auf dem gleichen Webserver befinden.
Ich gehe jetzt mal von ca. 20.000-30.000 Tabelleneinträgen + Bildern aus und max. 100-150 Benutzer, die "gleichzeitig" darauf zugreifen wollen.
D.h. bei 1MB pro Bild käme ich auf 30GB, die Tabelle sind, was weiß ich, 200Bytes pro Eintrag, also eher zu vernachlässigen, oder?
--> Speicherplatz ist nicht das Problem, 50GB kosten nichts
--> Traffic mittlerweile meist inklusive
Wie siehts mit der Transferrate aus? Sagen wir, ich habe GBit/s-Anbindung, dann würden bei 100 Usern pro User 10MBit/s übrigbleiben. Wäre schon eng, wenn jeder 100 Bilder laden soll, man müsste dann auf jeden Fall irgendwie dynamischer vorgehen und vielleicht weniger Bilder vorladen.
Muss ich sonst noch auf was achten? Mords Rechenleistung wird so ein Webserver wohl nicht brauchen, oder? So ein stinknormaler Webserver von gängigen Anbietern sollte doch eigentlich völlig ausreichen?
Oder soll ich lieber gleich auf was größeres gehen, bevor ich den ganzen Kram irgendwann auf eine größere Heimat umziehen muss?
Habe ich noch irgendwelche groben Denkfehler in meiner Abschätzung?
Danke,
Grüße,
Mosher
Edit: Ach so, als Ergänzung:
Da die ID zu jedem Bild eindeutig ist, bietet es sich ja an, in der Applikation zu hinterlegen, welche Bilder bereits geladen wurden. D.h. jedes Bild wird nur ein mal geladen und befindet sich dann auf dem lokalen Speicherplatz, auf dem auch die Applikation läuft. D.h. eben, im Schnitt entzerrt sich der Traffic etwas, aber ich möchte trotzdem möglichst wenige Flaschenhälse haben
Ich habe eine Applikation, in der pro Benutzer ca. 50-100 Bilder angezeigt werden sollen. "Bilder" will ich jetzt erst mal stehen lassen und noch nicht weiter bezüglich Größe, Auflösung etc. konkretisieren. Gehen wir einfach mal von irgendwas durchschnittlichem aus.
Diese Applikation greift im Prinzip auf eine MySQL-Datenbank zu, ferner eine Tabelle mit lediglich 3 Spalten:
ID (Primärschlüssel) (int)
URL zum Bild (VARCHAR)
TimeStamp (Unixzeit)
der Einfachkeit halber wird immer die komplette Tabelle abgefragt, später wird vermutlich nach TimeStamp gefiltert und nur neuere Einträge berücksichtigt.
In der Applikation werden dann aus allen verfügbaren IDs 50-100 ausgewürfelt, und die entsprechenden Bilder über die URLs geladen. Die Bilder selbst werden sich auf dem gleichen Webserver befinden.
Ich gehe jetzt mal von ca. 20.000-30.000 Tabelleneinträgen + Bildern aus und max. 100-150 Benutzer, die "gleichzeitig" darauf zugreifen wollen.
D.h. bei 1MB pro Bild käme ich auf 30GB, die Tabelle sind, was weiß ich, 200Bytes pro Eintrag, also eher zu vernachlässigen, oder?
--> Speicherplatz ist nicht das Problem, 50GB kosten nichts
--> Traffic mittlerweile meist inklusive
Wie siehts mit der Transferrate aus? Sagen wir, ich habe GBit/s-Anbindung, dann würden bei 100 Usern pro User 10MBit/s übrigbleiben. Wäre schon eng, wenn jeder 100 Bilder laden soll, man müsste dann auf jeden Fall irgendwie dynamischer vorgehen und vielleicht weniger Bilder vorladen.
Muss ich sonst noch auf was achten? Mords Rechenleistung wird so ein Webserver wohl nicht brauchen, oder? So ein stinknormaler Webserver von gängigen Anbietern sollte doch eigentlich völlig ausreichen?
Oder soll ich lieber gleich auf was größeres gehen, bevor ich den ganzen Kram irgendwann auf eine größere Heimat umziehen muss?
Habe ich noch irgendwelche groben Denkfehler in meiner Abschätzung?
Danke,
Grüße,
Mosher
Edit: Ach so, als Ergänzung:
Da die ID zu jedem Bild eindeutig ist, bietet es sich ja an, in der Applikation zu hinterlegen, welche Bilder bereits geladen wurden. D.h. jedes Bild wird nur ein mal geladen und befindet sich dann auf dem lokalen Speicherplatz, auf dem auch die Applikation läuft. D.h. eben, im Schnitt entzerrt sich der Traffic etwas, aber ich möchte trotzdem möglichst wenige Flaschenhälse haben