|
|
|
|
|
|
(Threadleser)
(Threadstarter)
Registrierungsdatum: Apr 2001
Ort: :/root
Beiträge: 3.475
|
Re: Speicher regelmäßig freimachen?
Es ist nun 2 Monate her, und wir haben einiges versucht. Leider ist es immer noch nicht besser geworden und ich versuche euch die Problematik noch einmal zu erklären.
Alle Dateien auf filecache.de liegen als nicht mit dem original Dateinamen auf dem Server. Die wurden allesamt umbenannt in deren "fileid's", also z.B. 238923 in einem nicht publizierten Ordner.
Wenn ich nun z.B. lighttpd nutze kann das hauseigene Modul nur Datei senden, wie diese auch schon auf dem Server liegen, also in dem Fall als FileID ohne den richtigen Dateinamen (vorhanden in einer Datenbank).
Das gleiche Spiel natürlich mit Apachemodulen etc. pp.
PHP ist dafür nicht ausgelegt, JA, das weiß ich mittlerweile.
Aber wie bitteschön sonst regulieren?
Folgende Dinge müssen beachtet werden - Die Links dürfen nur eine bestimmte Zeit gültig sein
- Jeder User darf mit einer anderen Geschwindigkeit runterladen (je nach Cookie)
- Die Dateien liegen als FileIDs auf dem Server
- Der richtige Dateiname liegt in einer MySQL-Datenbank
- Es dürfen nur begrenze Anzahl synchroner Downloads pro User und global möglich sein.
WIE also würden IHR das lösen, wenn NICHT mit PHP?
Danke,
miLeRiAm
|
21. 10. 2005, 16:05
|
#26
|
|
Mitglied
Registrierungsdatum: Jul 2003
Beiträge: 5.218
|
Re: Speicher regelmäßig freimachen?
Zitat:
|
Zitat von miLeRiAm
Folgende Dinge müssen beachtet werden - Die Links dürfen nur eine bestimmte Zeit gültig sein
- Jeder User darf mit einer anderen Geschwindigkeit runterladen (je nach Cookie)
- Die Dateien liegen als FileIDs auf dem Server
- Der richtige Dateiname liegt in einer MySQL-Datenbank
- Es dürfen nur begrenze Anzahl synchroner Downloads pro User und global möglich sein.
WIE also würden IHR das lösen, wenn NICHT mit PHP?
|
Du kannst das doch mit PHP lösen, aber doch nicht das File erst einlesen.
Ich würde es so machen, wie alle mir bekannten 1Click-Hoster auch; einen temporären Link erstellen, der nur einmal abgerufen werden kann (das schließt dann zwar solche Downloadmanager aus, weil die ja mehrfach das File mit dem URL anfordern, aber das würde ich in Kauf nehmen, sonst wäre es zu komplex, wenn man Apache da nachschauen lässt, ob das die gleiche Person ist).
*Ich* an deiner Stelle würde mir jemanden Suchen, der das macht, wenn du damit überfordert bist, und dann dafür angemessen zahlen (und nein, ich will das nicht machen  ). So komplex ists nun auch nicht und so teuer wird das auch nicht werden.
Würde mich jedenfalls wundern, wenn dir hier jemand den Code mal eben so schreibt, so einfach ists nämlich auch nicht
Aso, den AUTH über Cookies? Nunja, wenn dein Dienst an beliebtheit gewinnt würde ich mir das auch nochmal überlegen
|
21. 10. 2005, 17:24
|
#27
|
|
(Threadleser)
(Threadstarter)
Registrierungsdatum: Apr 2001
Ort: :/root
Beiträge: 3.475
|
Re: Speicher regelmäßig freimachen?
moin,
bei getafreelancer.com verlangen die alle 50-100 dollar - das stellt ja auch gar kein problem da, sondern dass da bisher alle (!) unfähig waren das problem zu lösen.
hier im filecache thread biete ich auch 100-200 EUR, wenn es denn RICHTIG funktioniert.
|
21. 10. 2005, 17:35
|
#28
|
|
Techmin
Registrierungsdatum: Sep 2003
Ort: K-Pax
Beiträge: 5.402
|
Re: Speicher regelmäßig freimachen?
Was war jetzt mit dem BandwithModule? Schied es aus? Warum?
Was spräche dagegen, selbiges zusammen mit PHP zu benutzen? Also ein PHP Script, dass sich um rechteverwaltung und 1 click download kümmert. Speedregulierung dann über das BwM.
Da es ja versch. speeds geben soll könnte man das über subdomains regeln? fast.filecache.de free.filecache.de etc.pp.
|
21. 10. 2005, 18:05
|
#29
|
|
Mitglied
Registrierungsdatum: Jul 2003
Beiträge: 5.218
|
Re: Speicher regelmäßig freimachen?
Zitat:
|
Zitat von miLeRiAm
bei getafreelancer.com verlangen die alle 50-100 dollar - das stellt ja auch gar kein problem da, sondern dass da bisher alle (!) unfähig waren das problem zu lösen.
|
Ich kenne den Thread hier nicht, aber vielleicht solltest du einfach noch etwas Geduld haben.
Naja, und 200 Euro fix? Wenn nix hilft, lass mal die Grenze nach oben weg und schau, was sich andere so vorgestellt haben. Für einen Studenten kann das Geld nebenher sicher ganz interessant sein.
Ist aber auch recht anspruchsvoll; vielleicht solltest du die Bandbreitenlimitierung da rausnehmen und daraus ne zweite Aufgabe machen; gehört nämlich auch eigentlich nicht dazu.
Du willst einmal die Generierung von temporär und einmalig gültigen Links, zum anderen willst du die Limitierung dieses Links (bzw., besser ist hier die Zuordnung über die IP).
Ersteres ist eine klar in PHP gehaltene Geschichte, beim zweiten bietet sich hier entweder das bandwith_limit-Modul Apaches, oder aber die Möglichkeit, das im Kernel via QoS zu realisieren, an.
So, spontan aus dem Bauch heraus.
In jedem Fall sprichst du mit beiden Aufgaben eigentlich verschiedene Fähigkeiten an; jemand, der PHP kann hat nicht unbednigt Erfahrung mit QoS-Algorithmen und den Möglichkeiten iproutes, andersrum schauts ähnlich und dieses spezielle Apache-Modul scheint nicht sehr verbreitet zu sein.
|
21. 10. 2005, 18:07
|
#30
|
|
(Threadleser)
(Threadstarter)
Registrierungsdatum: Apr 2001
Ort: :/root
Beiträge: 3.475
|
Re: Speicher regelmäßig freimachen?
moin,
das problem ist nicht nur der speed, sondern folgendes.
PHP-Code:
while (!feof($handle))
{
$buffer = fread($handle, $chunksize);
echo $buffer;
flush();
sleep($timechunk);
}
Das geht alles erst in den Speicher...
|
21. 10. 2005, 18:15
|
#31
|
|
Mitglied
Registrierungsdatum: Jul 2003
Beiträge: 5.218
|
Re: Speicher regelmäßig freimachen?
Zitat:
|
Zitat von miLeRiAm
das problem ist nicht nur der speed, sondern folgendes.
|
Das ist das von mir oben als "erste Aufgabe" bezeichnetes Problem
|
21. 10. 2005, 18:22
|
#32
|
|
Techmin
Registrierungsdatum: Sep 2003
Ort: K-Pax
Beiträge: 5.402
|
Re: Speicher regelmäßig freimachen?
hallo? kann man das lesen? ist das sichtbar? Liest jemand meine Beiträge? Jungs, sagt doch was
Dieses Problem könnte man mit einem "echten" PHP Download bewerkstelligen
13.3. Wie realisiere ich einen Dateidownload mit PHP?
http://www.php-faq.de/q/q-datei-download.html
Den darin enthaltenen Quellcode schenke ich dir, damit du ihn mit deinen Features und dem bw_mod bestücken kannst.
Viel Eroflg - gute nacht.
|
22. 10. 2005, 01:55
|
#33
|
|
(Threadleser)
(Threadstarter)
Registrierungsdatum: Apr 2001
Ort: :/root
Beiträge: 3.475
|
Re: Speicher regelmäßig freimachen?
Das problem haben wir nun (doch selbst) gelöst, es gibt zwar ein paar Fehlerfolgen aber die sind schnell behoben. Danke erstmal für alle Tipps.
|
22. 10. 2005, 09:26
|
#34
|
|
Mitglied
Registrierungsdatum: Jul 2005
Beiträge: 92
|
Re: Speicher regelmäßig freimachen?
|
22. 10. 2005, 11:01
|
#35
|
|
(Threadleser)
(Threadstarter)
Registrierungsdatum: Apr 2001
Ort: :/root
Beiträge: 3.475
|
Re: Speicher regelmäßig freimachen?
Wir setzen jetzt auf eine interne Lösung, auf Basis von Linux, einem alternativen Webserver und PHP-Algos.
|
22. 10. 2005, 11:04
|
#36
|
|
Mitglied
Registrierungsdatum: Jul 2003
Beiträge: 5.218
|
Re: Speicher regelmäßig freimachen?
Zitat:
|
Zitat von tiberian
hallo? kann man das lesen? ist das sichtbar? Liest jemand meine Beiträge? Jungs, sagt doch was
Dieses Problem könnte man mit einem "echten" PHP Download bewerkstelligen
13.3. Wie realisiere ich einen Dateidownload mit PHP?
http://www.php-faq.de/q/q-datei-download.html
Den darin enthaltenen Quellcode schenke ich dir, damit du ihn mit deinen Features und dem bw_mod bestücken kannst.
|
Du verkennst etwas die Komplexität des ganzen.
Die Basis ist ja soweit OK (hatte ich oben ja schon so skizziert), aber es fehlen wichtige Bestandteile:
- der Link darf nur ein mal und nur für eine bestimmte Zeit gültig sein
- der Dateiname muss ebenfalls gebildet (bzw. abgerufen) werden
- irgendwo muss man dem Code, der limitieren soll, übergeben, auf was er limitieren soll
Einen einfachen Link zu konstruieren ist dabei kein Problem, ich denke, das konnte mileriam vorher schon, er hat die Variante mit Einlesen gewählt, damit er limitieren konnte.
Zitat:
|
Zitat von miLeRiAm
Wir setzen jetzt auf eine interne Lösung, auf Basis von Linux, einem alternativen Webserver und PHP-Algos.
|
Ich würde dir emfehlen, dass du dir beizeiten nochmal das bandwith_limit-Modul anschaust.
Apache ist die Software, die du einsetzen willst.
|
22. 10. 2005, 12:36
|
#37
|
|
ONE THiNG
Registrierungsdatum: Mar 2001
Beiträge: 647
|
Re: Speicher regelmäßig freimachen?
bandwidth-mod von apache ist eine ganz schlechte idee... unsere load werte sind direkt in die höhe geschossen..
|
22. 10. 2005, 12:46
|
#38
|
|
Mitglied
Registrierungsdatum: Jul 2003
Beiträge: 5.218
|
Re: Speicher regelmäßig freimachen?
Zitat:
|
Zitat von clueless
bandwidth-mod von apache ist eine ganz schlechte idee... unsere load werte sind direkt in die höhe geschossen..
|
Was hat denn die Load verursacht (mal abgesehen davon, dass das Register /proc/loadaverage ein Pseudowert ist, der allenfalls etwas über die Elastizität, keinesfalls aber über die Auslastung der Kiste verrät)?
Das ist schließlich ein Modul, läuft also innerhalb einer Apache-Instanz, und Load zählt nur die gleichzeitig aktiven Prozesse.
|
22. 10. 2005, 12:50
|
#39
|
|
Mitglied
Registrierungsdatum: Jul 2003
Beiträge: 5.218
|
Re: Speicher regelmäßig freimachen?
Zitat:
|
Zitat von Toady
mal abgesehen davon, dass das Register /proc/loadaverage ein Pseudowert ist, der allenfalls etwas über die Elastizität, keinesfalls aber über die Auslastung der Kiste verrät
|
Da ich nun schon drei Mails zu dieser Aussage bekommen habe, mal ein konkretes Beispiel.
Ich habe gestern abend gegen 2330h auf meinem DMZ-Host rund 8GB von einer hdd auf eine andere kopiert (normaler cp mit nice 19); hier einmal grafisch die wichtigen Systemwerte dazu:
Wie man sieht geht die Load von normal 0.2 auf über 8.0, die Prozesse hängen mit Waiting im Kernel (da der I/O-Zugriff auf beide Platten nunmal länger dauert als cp Rechenzeit benötigt) und der aktiv genutzte Speicher fällt signifikant ab.
Trotz der Load von über 5 war die Kiste keinesfalls langsamer als vorher, auch war nicht weniger CPU-Zeit da (cp hing ja meist mit SLEEP oder WAITING im Kernel).
Das System war aber weniger elastisch, also neue Prozesse mussten zT auch warten und verbarten dabei CPU-Zeit (USER- und SYSTEM- Zeit gingen ebenfalls hoch, auch wenn das nicht so gut zu erkennen ist).
Das bedeutet, dass das Gesamtsystem zwar zu der Zeit langsamer ist, aber nicht in dem Maße, wie es die Load vermuten lässt. Ein Prozess braucht einfach länger, um CPU-Zeit zu bekommen, obwohl diese da ist, eben weil cp "verstopfend" wirkt.
Die CPU lief nicht auf Hochtouren, sie wartete im Grunde nur vor sich hin.
Auf einem Mehrprozessorsystem würde soetwas noch weniger auffallen, weil sich dann eine CPU komplett um cp kümmern würde, außerdem ist die Threadverwaltung da anders.
|
22. 10. 2005, 15:49
|
#40
|
|
ONE THiNG
Registrierungsdatum: Mar 2001
Beiträge: 647
|
Re: Speicher regelmäßig freimachen?
nein ich meine wirklich hohe loadwerte. sprich: server unter stoßzeiten nicht mehr ansprechbar und kompletter bottleneck im bereich cpu/ram
(wobei Pentium4 3GHz, 2GB RAM, 20Mbit drosselung)
haben dann wieder die QoS lösung eingebaut und schon lief der server mit fast 0% auslastung.
|
22. 10. 2005, 16:06
|
#41
|
|
Mitglied
Registrierungsdatum: Jul 2003
Beiträge: 5.218
|
Re: Speicher regelmäßig freimachen?
Zitat:
|
Zitat von clueless
nein ich meine wirklich hohe loadwerte. sprich: server unter stoßzeiten nicht mehr ansprechbar und kompletter bottleneck im bereich cpu/ram
(wobei Pentium4 3GHz, 2GB RAM, 20Mbit drosselung)
|
Ich weiß zwar nicht, was du nun mit "wirklich hohe Loadwerte" meinst (s.o. - die Load ist kein Zeichen für CPU oder RAM-Auslastung, Load zählt einfach nur momentan aktive Prozesse, also Prozesse, die jetzt gerade CPU-Zeit wollen, auch wenn 100 Prozesse jeweils nur 0.001% brauchen würden, was einer CPU-Auslastung von 0.1% entspräche, läge die Load bei 100 - auch wenn das nun ein absolut praxisfernes Beispiel ist, das soll auch nur verdeutlichen), aber mich interessiert einfach, wie das Apache-Modul arbeitet.
Ich selbst kenne es gar nicht, habe bislang aber eher positives am Rande dazu aufgeschnappt.
Deshalb wollte ich wissen, was und wie sich das auswirkt, wenn man wirklich ordentlich Traffic darüber regulieren lässt.
Wenn ich das richtig sehe läuft das Modul doch in einer Apache-Instanz, die eh läuft und im Kernel hängt - mehr Load kann es doch dann nicht geben. Mehr Rechenzeit kann ich mir auch nicht vorstellen; sonderlich schwierig ist es -für mich auf den ersten Blick- ja nicht, den Durchsatz zu begrenzen, und RAM kann das doch gar nicht kosten, also nicht mehr.
Wie gesagt, ich kenne es einfach nicht, gut möglich, dass ich hier etwas übersehe, aber vom Design her fände ich es besser, möglichst an der Quelle das Problem zu lösen, also direkt beim Indianer, und nicht hintenrum den Durchsatz über den Kernel zu verringern, denn letzteres scheint mir, auf den ersten Blick, ohne das Apache-Modul zu kennen, deutlich aufwendiger.
|
22. 10. 2005, 16:23
|
#42
|
|
Alle Zeitangaben in UTC +1. Es ist jetzt 20:52 Uhr.
|
|