php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 09-07-2007, 22:20
Wannabe
 Registrierter Benutzer
Links : Onlinestatus : Wannabe ist offline
Registriert seit: Apr 2001
Beiträge: 135
Wannabe ist zur Zeit noch ein unbeschriebenes Blatt
Wannabe eine Nachricht über ICQ schicken
Standard Problem mit Serverlast

Hallo,

wir haben lange nach der Ursache für die teilweise sehr hohe Lasz auf unserem Server gesucht.
Wie es scheint lahmt der Server ( 1 GB RAM , 2800 Mhz) immer dann wenn grosse Bilder hochgeladen werden.
Als Upload-Limit sind 2 MB angegeben, da es sich um eine Community handelt in der die Anwender nicht besonders viel Ahnung von Technik haben und sicher nicht viele wissen wie man ein Bild verkleinert ;-)

Nach dem Upload werden die Bilder mit der GDlib auf Format gebracht.
Das hochgeladene Bild wird auf eine Gesamthöhe bzw. Gesamtbreite von maximal 500px getrimmt (Qualität 75) und es wird gleichzeitig ein Thumbnail mit maximal 150px höhe bzw. breite erstellt.
Diese beiden Grafiken werden dann per FTP auf einem entfernten Server gespeichert.
Pro Stunde werden im Schnitt etwa 40 bis 50 Bilder hochgeladen.

Meine Frage jetzt?
Ist es einerseits wirklich möglich das der Uploa so viele Ressourcen frisst?
Und wenn ja, hat jemand Ideen wie ich das optimieren könnte bzw. welcher Schritt ist letztendlich der Ressourcenfressende? Der Upload? Das Verkleinern? Der FTP-Transfer? Wie könnte ich etwas verändern?

Geändert von Wannabe (19-07-2007 um 01:05 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 09-07-2007, 22:23
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

upload? nein. bildbearbeitung? viel eher. aber bei 40-50 bilder pro stunde kann davon nicht die rede sein.

was bedeutet "lahmt"? was steht dazu in den logs? welche prozesse laufen auf dem rechner und was machen sie in dieser zeit? was ergaben deine eigenen messungen der pro routine benötigten zeiten? was bildet in dieser zeit den traffic?
Mit Zitat antworten
  #3 (permalink)  
Alt 09-07-2007, 23:50
pekka
 PHP Master
Links : Onlinestatus : pekka ist offline
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
pekka befindet sich auf einem aufstrebenden Ast
Standard

OffTopic:

Ich war drauf und dran, ImageMagick als performantere Lösung zu empfehlen, wollte mich aber (mangels eigener Messungen, nur subjektive Eindrücke) vorher absichern und finde das hier:
http://blog.liip.ch/archive/2005/10/...ick-vs-gd.html
interessant. In den UCN wird aber eine interessante Alternative genannt: djpeg, cscale und cjpeg. Vielleicht ist das was, falls der Hauptschuldige das Skalieren ist.

Mit Zitat antworten
  #4 (permalink)  
Alt 09-07-2007, 23:54
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Vielleicht ist das was, falls der Hauptschuldige das Skalieren ist.
Aber bei 40-50 Bildern pro Stunde bei einem derartigen Server kann ich mir das nicht recht vorstellen. Selbst wenn das skalieren jedes mal fünf Sekunden dauern würde - pro Upload bleibt über eine Minute Zeit zum verarbeiten, der Upload an sich verursacht sicherlich keine Serverlast. Das Problem liegt wohl woanders, vielleicht werden Bilder noch öfter skaliert oder die Anzeige durchläuft bei jedem Vorgang irgendwelche großen Schleifen?
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #5 (permalink)  
Alt 10-07-2007, 00:04
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von pekka
OffTopic:

Ich war drauf und dran, ImageMagick als performantere Lösung zu empfehlen, wollte mich aber (mangels eigener Messungen, nur subjektive Eindrücke) vorher absichern und finde das hier:
http://blog.liip.ch/archive/2005/10/...ick-vs-gd.html
interessant. In den UCN wird aber eine interessante Alternative genannt: djpeg, cscale und cjpeg. Vielleicht ist das was, falls der Hauptschuldige das Skalieren ist.
imagemagick ist aber in sofern besser, als dass es auch mit exotischeren Bildformaten klar kommt (im Vergleich zu GD - die anderen beiden kenne ich nicht)
Mit Zitat antworten
  #6 (permalink)  
Alt 10-07-2007, 00:08
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Mach Zeitmessungen in den Skripten und guck welche am längsten bei der Ausführung brauchen.
Was sagt top? Irgendwas sonderbares?
Was sagt die Datenbank? Slow-Query-Log? Irgendwas an Killern dabei?
Swappt der Server eventuell wenn er die Bilder rendert? Dann sollten die anderen Applikationen darauf geeicht werden, dass ein paar MB Ram frei bleiben für die Konvertierung~
Mit Zitat antworten
  #7 (permalink)  
Alt 19-07-2007, 01:04
Wannabe
 Registrierter Benutzer
Links : Onlinestatus : Wannabe ist offline
Registriert seit: Apr 2001
Beiträge: 135
Wannabe ist zur Zeit noch ein unbeschriebenes Blatt
Wannabe eine Nachricht über ICQ schicken
Standard

Also jetzt gerade ist mal wieder am A*sch...
Es geht gar nichts mehr...

Ich hatte mir SysInfo 2.26 vor ein paar Tagen installiert und hab dort eben reingesehen...

Leider kann ich mit den Werten relativ wenig anfangen, also poste ich mal die die mir jetzt gerade ins Auge stechen.
Vielleicht hab ich ja Glück und es ist was gescheites dabei *gg*

System:
AMD Athlon(tm) 64 Processor 3700+
Chip Mhz: 2200.16 (i686)
Cache Grösse: 1024 KB
System Bogomips: 4402.90

======================
CPU Auslastung: 100%
Physical Memory: 94%
Disk Swap: 0%
======================

Bei den laufenden Prozessen sticht besonders eines direkt ins Auge:
USER: mysql
CPU 3.0%
%MEM: 13.2%
VSZ: 238.16 MB
STAT: S
Time: 00:42
Command:
/usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-locking --open-files-limit=8192 --port=3306 --socket=/var/run/mysqld/mysqld.sock

Dann gibt es noch 6 mal COMMAND " spamd child" mit jeweils etwa 25 bis 30 MB VSZ-Wert und 2 bis 3 Prozent CPU-Last.

Das sind die großen Werte die ich dort sehe...
Ist es normal das der VSZ-Wert so hoch ist...?
Ich vermute gerade das es irgendwas mit MySql zu tun hat.
Auch wenn ich nicht weiss was der hohe VSZ-Wert bedeutet, fällt mir doch auf das eine Seite auf diesem web die KEINEN Zugriff auf die Datenbank hat sofort geladen wird, eine andere, welche erst datenbankabfragen machen muss lädt sich gerade tot.
Kann mir jemand sagen wie ich euch (ohne root-zugriff) wichtige Daten zeigen kann...?
Mit Zitat antworten
  #8 (permalink)  
Alt 19-07-2007, 01:57
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also 200 MB VSZ sind mMn okay.
Das klingt jetzt ein wenig so als würde die Datenbank lahmen und daraufhin der apache nicht rund laufen und so die hohe CPU-Auslastung hervorbringen...
Schalt mal das slow-query-log ein, benutze mytop um dir anzuschauen was der DB-Server macht und finde raus warum der so lahmt (mysqlreport leistet gute Dienste um raus zu finden ob keycache und buffer vernünftig genutzt wird und die Werte okay sind)

[edit]
existiert nur der eine mysql-Prozess?

Geändert von ghostgambler (19-07-2007 um 02:00 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 19-07-2007, 02:29
Wannabe
 Registrierter Benutzer
Links : Onlinestatus : Wannabe ist offline
Registriert seit: Apr 2001
Beiträge: 135
Wannabe ist zur Zeit noch ein unbeschriebenes Blatt
Wannabe eine Nachricht über ICQ schicken
Standard

Also erstmal kurz vorab:

Ja, das ist der einzige MySql-Prozess der läuft.
Und es hat auch sonst kein anderer Prozess annährend so hoge Werte.
Wenn ich über phpMyAdmin nach den MySql-Prozessen schaue (SHOW PROCESSLIST) sehe ich gerade jede menge Prozesse die bereits seit mehreren Minuten oder auch erst kurzfristig als "Sleep" dort stehen und der Aufbau einer Seite auf meiner Domain dauert gefühlt an die 2 bis 3 Minuten :-(
Der linke Teil (die statische Navigation) baut sich sofort auf, der dynamische Content aber dauert wie gesagt ewig.

SHOW STATUS gibt in phpMyAdmin übrigens folgendes aus:

Variable_name Value
Aborted_clients 20
Aborted_connects 8
Bytes_received 10066497
Bytes_sent 66538594
Com_admin_commands 2
Com_alter_table 0
Com_analyze 1
Com_backup_table 0
Com_begin 0
Com_change_db 11021
Com_change_master 0
Com_check 19677
Com_commit 0
Com_create_db 0
Com_create_function 0
Com_create_index 0
Com_create_table 0
Com_delete 685
Com_delete_multi 0
Com_drop_db 0
Com_drop_function 0
Com_drop_index 0
Com_drop_table 0
Com_flush 0
Com_grant 0
Com_ha_close 0
Com_ha_open 0
Com_ha_read 0
Com_insert 2380
Com_insert_select 216
Com_kill 14
Com_load 0
Com_load_master_data 0
Com_load_master_table 0
Com_lock_tables 392
Com_optimize 224
Com_purge 0
Com_rename_table 0
Com_repair 2
Com_replace 14
Com_replace_select 0
Com_reset 0
Com_restore_table 0
Com_revoke 0
Com_rollback 0
Com_savepoint 0
Com_select 14829
Com_set_option 327
Com_show_binlog_events 0
Com_show_binlogs 35
Com_show_create 0
Com_show_databases 17
Com_show_fields 2
Com_show_grants 10
Com_show_keys 0
Com_show_logs 0
Com_show_master_status 0
Com_show_new_master 0
Com_show_open_tables 0
Com_show_processlist 26
Com_show_slave_hosts 0
Com_show_slave_status 0
Com_show_status 2
Com_show_innodb_status 0
Com_show_tables 118
Com_show_variables 1
Com_slave_start 0
Com_slave_stop 0
Com_truncate 0
Com_unlock_tables 392
Com_update 8129
Com_update_multi 0
Connections 9215
Created_tmp_disk_tables 45
Created_tmp_tables 1026
Created_tmp_files 3
Delayed_insert_threads 0
Delayed_writes 0
Delayed_errors 0
Flush_commands 1
Handler_commit 0
Handler_delete 1958
Handler_read_first 3828
Handler_read_key 6016679
Handler_read_next 33137815
Handler_read_prev 14219
Handler_read_rnd 362645
Handler_read_rnd_next 30060705
Handler_rollback 0
Handler_update 4828327
Handler_write 309354
Key_blocks_used 124690
Key_read_requests 4689705
Key_reads 178631
Key_write_requests 22075
Key_writes 10069
Max_used_connections 19
Not_flushed_key_blocks 0
Not_flushed_delayed_rows 0
Open_tables 512
Variable_name Value
Open_files 995
Open_streams 0
Opened_tables 22313
Questions 90479
Qcache_queries_in_cache 3953
Qcache_inserts 11423
Qcache_hits 22644
Qcache_lowmem_prunes 0
Qcache_not_cached 3347
Qcache_free_memory 8406976
Qcache_free_blocks 327
Qcache_total_blocks 9294
Rpl_status NULL
Select_full_join 220
Select_full_range_join 2
Select_range 1767
Select_range_check 0
Select_scan 3672
Slave_open_temp_tables 0
Slave_running OFF
Slow_launch_threads 0
Slow_queries 1
Sort_merge_passes 0
Sort_range 1741
Sort_rows 2873815
Sort_scan 1998
Table_locks_immediate 53053
Table_locks_waited 4
Threads_cached 0
Threads_created 9214
Threads_connected 9
Threads_running 1
Uptime 7451



slow-query-log kann ich doch nur per root aktivieren, oder seh ich das falsch?
Root-Zugriff hab ich nämlich leider nicht...

Geändert von Wannabe (19-07-2007 um 02:37 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 19-07-2007, 11:11
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
slow-query-log kann ich doch nur per root aktivieren, oder seh ich das falsch?
Wenn du MySQL starten (und stoppen) kannst geht das.
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #11 (permalink)  
Alt 19-07-2007, 14:21
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Wannabe
Ja, das ist der einzige MySql-Prozess der läuft.
Dann sind das mMn gute Werte - denn das ist der komplette Server dann

Zitat:
Wenn ich über phpMyAdmin nach den MySql-Prozessen schaue (SHOW PROCESSLIST) sehe ich gerade jede menge Prozesse die bereits seit mehreren Minuten oder auch erst kurzfristig als "Sleep" dort stehen und der Aufbau einer Seite auf meiner Domain dauert gefühlt an die 2 bis 3 Minuten :-(
Ja, es stehen für gewöhnlich viele Threads auf sleep... was interessant sind sind die Threads, die auch was TUN!
mytop, runterladen, starten, i drücken
Irgendein Query für lange Zeit ganz oben?

Zitat:
SHOW STATUS gibt in phpMyAdmin übrigens folgendes aus:
x_X
Das kann ja keiner lesen...
http://hackmysql.com/mysqlreport
runterladen, laufen lassen mit --all, output posten
Da sind die Werte schon wunderbar verrechnet.


Den Output von SHOW GLOBAL VARIABLES bitte gleich auch noch ^^

Geändert von ghostgambler (19-07-2007 um 14:23 Uhr)
Mit Zitat antworten
  #12 (permalink)  
Alt 19-07-2007, 14:43
Wannabe
 Registrierter Benutzer
Links : Onlinestatus : Wannabe ist offline
Registriert seit: Apr 2001
Beiträge: 135
Wannabe ist zur Zeit noch ein unbeschriebenes Blatt
Wannabe eine Nachricht über ICQ schicken
Standard

Entschuldigt bitte, aber ich hab keine Ahnung wie ich slow-query-log aktivieren und myTop installieren soll.
Ich habe normalen FTP-Zugang, Zugang zu MySql und Confixx.
Es ist ein managed Server
Mit Zitat antworten
  #13 (permalink)  
Alt 19-07-2007, 15:06
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Wannabe
Entschuldigt bitte, aber ich hab keine Ahnung wie ich slow-query-log aktivieren und myTop installieren soll.
Ich habe normalen FTP-Zugang, Zugang zu MySql und Confixx.
Es ist ein managed Server
Dann wende dich an den Support, der wird ja schließlich für die Lösung solcher Probleme bezahlt...
Mit Zitat antworten
  #14 (permalink)  
Alt 19-07-2007, 15:16
Wannabe
 Registrierter Benutzer
Links : Onlinestatus : Wannabe ist offline
Registriert seit: Apr 2001
Beiträge: 135
Wannabe ist zur Zeit noch ein unbeschriebenes Blatt
Wannabe eine Nachricht über ICQ schicken
Standard

Genau DAS ist ja das Problem, die wissen nämlich nicht weiter ;-)

Okay, wenn ich jetzt slow-query-log aktivieren und myTop und mysqlreport installieren lasse, kann ich darauf denn nachher ganz normal über den Browser zugreifen?
Wohl nicht, was...?
Mit Zitat antworten
  #15 (permalink)  
Alt 19-07-2007, 15:23
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hast du endlich zeitmessungen durchgeführt, um regelmäßigkeiten zu entdecken und den flaschenhals zu lokalisieren?
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:52 Uhr.