Erster Aufruf "am Tag" dauert fast 2 Minuten
am 29.02.2012 - 09:17 Uhr in
Ich habe hier im Forum schon ein wenig gesucht, aber eine richtige Lösung habe ich bisher nicht gefunden.
Ich stelle gerade eine Webseite um auf Drupal 7, dabei fällt besonders negativ auf dass der ERSTE Seitenaufruf "am Tag" oder nach längerer Zeit extrem lange dauert. Teilweise über 2 Minuten. Sobald der erste Aufruf dann mal geklappt hat geht dann alles wieder relativ zügig, bis halt irgend eine Zeit X abläuft und der Abruf wieder bis zu 2 Minuten dauert.
Es handelt sich jeweils um frische Drupal 7 Installationen (Paket hier von DC) bei denen 3 kleine Test-Artikel geschrieben wurden, das Forum aktiviert wurde und der CKEditor. Ansonsten ist soweit alles "inhaltslos". Das "Problem" existiert auch unabhängig vom verwendeten Theme/Design.
Zuerst dachte ich es liegt am Provider, aber mittlerweile habe ich einige ausprobiert:
- ziemlich potenter vserver von netcup.de (Preisklasse 12-16 Euro im Monat)
- Host Europe "WebPack XL 3.0" für 9,99 Euro im Monat
- All-inkl.com Webpaket "all-inkl Premium" ebenfalls für 9,99 Euro im Monat
- und nun bin ich bei uberspace.de gelandet
Das Problem bleibt bestehen, egal wo Drupal 7 liegt.
Drupal 7 wurde jedesmal mit Default-Einstellungen genutzt und es wurde nichts daran geändert.
Ich installiere jetzt ein Drupal 7, erstelle 3 Test-Artikel und aktiviere Forum und CKEditor ... lasse die Seite dann in Ruhe ... rufe sie morgen früh auf und warte beim ersten Start über 2 Minuten :/
Hat das irgend etwas mit dem Cache zu tun? Gibt es irgend welche Tools / Module mit denen man analysieren könnte wo es hängt?
- Anmelden oder Registrieren um Kommentare zu schreiben

Cron / Poormanscron
am 29.02.2012 - 10:31 Uhr
Da wird wohl der cron einiges durchrattern lassen. Da ich kein D7 nutze, weiß ich nicht, was da alles an Modulen im Core ist, die dabei ne Aktualisierung erfahren (bspw. Suchindex, Update-Status etc.?). Schalt doch mal testweise den cron-Durchlauf ab.
Hi
am 29.02.2012 - 12:39 Uhr
ob es am Drupal Cache liegt kannst du es wie folgt testen:
Nach dem ersten Zugriff geh in in Einstellungen->Performance und leere
den Cache.
Sollte die Seite wieder 2 Min. benötigen ist es der Drupal Cache.
Installier mal das Devel Modul und schalte das Performance logging ein
evtl. siehst Du da mehr.
Lieber Gruss
Cron
am 29.02.2012 - 23:36 Uhr
Versuche mal, die Einstellung für Cron unter www.DeineSeite.de/admin/config/system/cron auf "nie" zu stellen. Wenn das Verbesserung bringt, solltest Du dann einen Server-Cron einrichten, der zu einer bestimmten Zeit läuft.
Das eingebaute Cron Modul lässt sonst den ersten Benutzer, der die Seite nach einer gewissen Zeit aufruft, erstmal auf den Cron warten.
Erst mal Danke für die
am 01.03.2012 - 09:19 Uhr
Erst mal Danke für die Antworten :)
Ich musste ja leider erst mal warten bis der Fehler auftritt, daher konnte ich auch jetzt erst antworten.
@ "Cache"
Also der Cache ist es nicht, wenn ich ihn lösche und dann die Seite neu aufrufe ist die Seite fast instant wieder verfügbar, auf jeden Fall ergibt sich dort keine lange Wartezeit die das Problem verursachen könnte
@ "Cron"
Ja, der Cron könnte es sein.
Unter "Startseite » Verwaltung » Berichte » Verfügbare Aktualisierungen" hatte ich gestern erst mal die Einstellungen wie folgt geändert:
Auf Aktualisierungen prüfen
vorher: Täglich
auf: Wöchentlich
Die Überprüfung nach Aktualisierungen auch für deaktivierte Module und Themes durchführen
vorher: Aktiviert
auf: Deaktiviert
Grenzwert für E-Mail-Benachrichtigungen
vorher: Alle neueren Versionen
auf: Nur Sicherheitsupdates
Mit diesen Einstellungen ging die Zeit schonmal extrem runter von fast 2 Minuten auf 20-30 Sekunden für den ersten Start.
Devel sagt das hier dazu:
Executed 946 queries in 3856.51 ms. Queries exceeding 5 ms are highlighted. Page execution time was 23765.81 ms. Memory used at: devel_boot()=4.41 MB, devel_shutdown()=57.9 MB, PHP peak=60.25 MB.
Die Top10 dazu sieht so aus:
866.11ms 6 SystemQueue::claimItem P A E
SELECT data, item_id FROM queue q WHERE expire = 0 AND name = :name ORDER BY created ASC LIMIT 0, 1
215.99ms 2 system_list P A E
SELECT * FROM system WHERE type = 'theme' OR (type = 'module' AND status = 1) ORDER BY weight ASC, name ASC
144.53ms 12 locale P A E
SELECT s.lid, t.translation, s.version FROM locales_source s LEFT JOIN locales_target t ON s.lid = t.lid AND t.language = :language WHERE s.source = :source AND s.context = :context AND s.textgroup = 'default'
97.15ms 1 dblog_cron P A E
SELECT w.wid AS wid FROM watchdog w ORDER BY wid DESC LIMIT 1 OFFSET 999
85.6ms 3 _update_get_cache_multiple P A E
SELECT cache_update.cid AS cid, cache_update.data AS data, cache_update.created AS created, cache_update.expire AS expire, cache_update.serialized AS serialized FROM cache_update cache_update WHERE (cache_update.cid LIKE :db_condition_placeholder_0 ESCAPE '\\')
84.02ms 1 system_cron P A
DELETE FROM queue WHERE (created < :db_condition_placeholder_0) AND (name LIKE :db_condition_placeholder_1 ESCAPE '\\')
82.57ms 1 search_update_totals P A E
SELECT t.word AS realword, i.word FROM search_total t LEFT JOIN search_index i ON t.word = i.word WHERE i.word IS NULL
55.51ms 1 menu_load_links P A E
SELECT ml.* FROM menu_links ml WHERE (ml.menu_name = :db_condition_placeholder_0) ORDER BY weight ASC
default
53.44 ms 12 DrupalDatabaseCache::getMultiple P A E
SELECT cid, data, created, expire, serialized FROM cache WHERE cid IN (:cids_0)
52.45ms 1 menu_local_tasks P A E
SELECT menu_router.* FROM menu_router menu_router WHERE (tab_root = :db_condition_placeholder_0) AND (context <> :db_condition_placeholder_1) ORDER BY weight ASC, title ASC
50.03 1 language_list P A E
SELECT * FROM languages ORDER BY weight ASC, name ASC
1. Wo sehe ich den Inhalt des cron-jobs, also was er abarbeitet und wie kann ich diesen so ändern das er nur jede Nacht um 4 Uhr einmal am Tag läuft (auch nicht aktiviert wird wenn er auf den ersten Nutzer wartet)
2. Alternativ wie kann ich den cron so ändern das er alles so wie immer macht, allerdings generell OHNE die Abfrage auf Updates von Modulen und Themes? (Ich bin eh mehrfach täglich auf der Seite und kann auch per Hand nach Updates suchen)
Dann mußt Du einen externen
am 01.03.2012 - 10:03 Uhr
Dann mußt Du einen externen CronJob aufsetzen. Der Poormans-Cron wird ja nur durch einen Besucher angestoßen und startet wenn die Zeit abgelaufen ist und ein Besucher auf der Seite ist. Ein externer CronJob wird zeitgesteuert gestartet, unabhängig vom Besuch der Seite. Dann solltest Du aber in der Konfiguration den Cron abschalten, denn beides brauchst Du nicht.
Bei cronjob.de kannst Du Dir kostenlos einen Cronjob aufsetzen. Bei Drupal 7 ist zu beachten, daß Du für den Aufruf einen speziellen Key brauchst. Wie der Aufruf extern aussehen muß findest Du auf der Statusseite unter Cron.
Beste Grüße
Werner
Danke. ich werde das mal mit
am 01.03.2012 - 10:52 Uhr
Danke.
ich werde das mal mit dem "cron" machen, bzw. mit "runwhen". Müsste ja beides bei meinem Provider gehen (https://uberspace.de/dokuwiki/system:runwhen) und sollte kein Problem darstellen. Falls es die Lösung für mein Problem ist, werde ich mich die Tage (muss es ja erst mal testen) nochmal hier melden und ggf. den Thread als "[gelöst]" markieren.