[gelöst] Off-Topic: Hoster beschwert sich aufgrund zu hoher Datenbankauslastung

Deutschsprachiger Support für CMS Made Simple
oliver204
Forum Members
Forum Members
Posts: 122
Joined: Tue Jun 06, 2006 9:22 pm

[gelöst] Off-Topic: Hoster beschwert sich aufgrund zu hoher Datenbankauslastung

Post by oliver204 »

Hallo alles zusammen und alle Experten.

Ich habe eine etwas ungewöhnliche Meldung bzw. Anfrage.

Mein Webhoster hat mir in einer Email dargestellt, dass es
Die angegebene Beanspruchung wird überwiegend von sgg. Slow-Querries
verursacht. Es handelt sich dabei um Abfragen welche aufgrund  Ihrer
Komblexität nicht innerhalb von 3 sec. abgearbeitet wurden. >>>> Es sind somit nicht die Quantität der Abfragen an die Datenbank sondern die qualität der für die Tabellen gesetzten Indizes Durch einen oder mehrere Indizes, wird eine Art Vorsortierung vorgenommen. Wenn eine Spalte einen Index hat, dann verwaltet MySQL
intern eine sortierte 'Kopie' dieser Spalte. Eine neue  MySQL-Abfrage,
kann auf diese Kopie dann zurückgreifen und ist dadurch  schneller,
als  wenn die Query auf der unsortierten Spalte stattfinden würde.
Dann folgte ein ellenlanger Ausschnitt der Abfragen, die diese Last verursachen. Dies zeigt mir (als Laien) nur, dass es von zweien auf dem Server laufenden CMSMS Versionen verursacht wird. Auf unserem Server laufen insgesamt 6 CMSMS  nebeneinander.... 

Für die Indizes empfahl man mir: http://dev.mysql.com/doc/refman/5.1/de/ ... index.html

Ich habe jedoch überhaupt keinen blassen Schimmer, was ich damit anfangen soll :)

Weiß jemand Rat?
Sind 6 CMSMS Versionen für einen normalen Webhoster einfach zuviel ?
Produziert CMSMS wirklich soviele Abfragen?

Wenn jemand Rat und Tat weiß freue ich mich über eure Antworten.

MfG
Oliver
Last edited by oliver204 on Thu Dec 04, 2008 3:21 pm, edited 1 time in total.
NaN

Re: Off-Topic: Hoster beschwert sich aufgrund zu hoher Datenbankauslastung

Post by NaN »

Ich bin da wirklich kein Experte drin.
Aber meine Überlegungen sind da folgende:

Sind es immer dieselben zwei CMSms Installationen?
Welche Module kommen dort zum Einstatz?
(kannst mir auch den Query mal per pm schicken)
oliver204 wrote:
Sind 6 CMSMS Versionen für einen normalen Webhoster einfach zuviel ?
Kommt auf den Hoster und auf das Webpaket an.
Wenn die zudem alle auf ein und demselben Webspace laufen, dann produziert dieser eine Webspace die Last von (so wie der Hoster warscheinlich rechnen wird) sechs Webspaces. D.h. das entspräche der Last von sechs Kunden zum Preis von einem...

Allerdings verwirrt mich die Formulierung "Webhoster" und "Auf unserem Server".
Habt ihr nun einen eigene Server, oder nur Webspace bei einem Hoster?
cyberman

Re: Off-Topic: Hoster beschwert sich aufgrund zu hoher Datenbankauslastung

Post by cyberman »

Abgesehen davon arbeitet die CMSms-Standardinstallation mit Indizes.

Ich vermute mal, dass bestimmte Module dies nicht tun ... von daher wäre schon interessant, was da läuft.
oliver204
Forum Members
Forum Members
Posts: 122
Joined: Tue Jun 06, 2006 9:22 pm

Re: Off-Topic: Hoster beschwert sich aufgrund zu hoher Datenbankauslastung

Post by oliver204 »

@Nan: Sorry, Webspace bei einem Webhoster, kein eigener Server.


Es laufen im Prinzip nur die Module Album, Guestbook, TinyMCE, ModuleManager, nuSOAP.

Mich hat die Beschwerde total überrascht.

Also wird es wohl so sein, dass die 8 (ich hab nochmal nachgezählt) Installationen einfach zuviel sind für die Datenbank und dadurch zuviele qualitative anspruchsvolle Anfragen an diese richten?

Danke für eure Überlegungen!
NaN

Re: Off-Topic: Hoster beschwert sich aufgrund zu hoher Datenbankauslastung

Post by NaN »

oliver204 wrote:
Also wird es wohl so sein, dass die 8 (ich hab nochmal nachgezählt) Installationen einfach zuviel sind für die Datenbank und dadurch zuviele qualitative anspruchsvolle Anfragen an diese richten?
Ähm... lässt Du wirklich acht (!) CMSms Installationen über ein und dieselbe Datenbank laufen?
Über ein und denselben Webspace?
Wie häufig sind die Seiten denn besucht?
Und was für ein Webpaket hast Du bei Deinem Hoster?

Ich würde schätzen, so ca. drei einfache mäßig besuchte Seiten lassen sich (ohne Tunning) auf einem einfachen Webpaket (so für ca. 5-7 Euro pro Monat) problemlos betreiben.
Bei acht Seiten würde ich mindestens zwei Pakete verwenden.
(Sind jetzt keinerlei Erfahrungswerte - nur Schätzungen)

Hast Du schonmal versucht die Tunning-Tipps umzusetzen?
Damit lassen sich die Datenbankabfragen unter Umständen auch reduzieren.
oliver204
Forum Members
Forum Members
Posts: 122
Joined: Tue Jun 06, 2006 9:22 pm

Re: Off-Topic: Hoster beschwert sich aufgrund zu hoher Datenbankauslastung

Post by oliver204 »

ähm ja :)
etwas unbedacht nicht wahr?

2 Seiten davon kommen wohl auf eine hohe Zahl an Clicks und Besuchern.

Kann ich eine Datenbank ohne Probleme in eine andere kopieren? Das wäre vielleicht ja schon des Rätsels Lösung.

Gruß
tobik
Translator
Translator
Posts: 149
Joined: Thu Aug 16, 2007 6:18 pm

Re: Off-Topic: Hoster beschwert sich aufgrund zu hoher Datenbankauslastung

Post by tobik »

Hallo Oliver,

die Datenbanken aufzuteilen ist keine Lösung. Die Gesamtlast des Servers ändert sich dadurch nicht. Sicher wäre der Hoster toleranter, wenn er doppelt Geld dafür bekäme aber trotzdem...

Gut gewählte Indizes beschleunigen die Abfragen unter Umständen enorm. Zeig doch mal die SQL Anfragen, dann wird das klarer.

Wenn Du sehr gut besuchte Seiten hast, wäre das htmlExport Modul eine Überlegung wert.
NaN

Re: Off-Topic: Hoster beschwert sich aufgrund zu hoher Datenbankauslastung

Post by NaN »

tobik wrote:
Wenn Du sehr gut besuchte Seiten hast, wäre das htmlExport Modul eine Überlegung wert.
Jain.
Das ist noch ein wenig buggy und ich weiß nicht ob es mit der aktuellen Version funktioniert.
Zum Experimentieren, okay. Aber für den produktiven Einsatz noch nicht zu empfehlen.
Arbeite da an einer etwas besseren Version.
Da ich aber momentan aus Zeitgründen damit nur langsam vorankomme, würde ich das Beschleuningen durch Zwischenspeichern empfehlen:
http://forum.cmsmadesimple.org/index.ph ... 835.0.html

htmlExport bietet sich außerdem nur für Seiten an deren Inhalte sich selten ändern. Quasi "statische" Seiten.
Sobald irgendwas Dynamisches (z.B. Frontendusers) auf der Seite bzw. im Seitentemplate ist, macht der Einsatz von htmlExport leider keinen Sinn.
Last edited by NaN on Sun Nov 30, 2008 4:23 pm, edited 1 time in total.
oliver204
Forum Members
Forum Members
Posts: 122
Joined: Tue Jun 06, 2006 9:22 pm

Re: Off-Topic: Hoster beschwert sich aufgrund zu hoher Datenbankauslastung

Post by oliver204 »

Hier die Anfragen

Code: Select all

user count query_time lock_time rows_sent rows_examined
dbo168278365 154 1453[23](9.44) 582[16](3.78) 210[50](1.36)
101690[2566](660.32)
dbo168278365 24 select * from wp_fgfad_manager where banners_group = %%
order by rand() limit %%;
dbo168278365 20 SELECT * FROM
wp_fgfmypictures,wp_fgfmygprelation,wp_fgfmygallery WHERE
wp_fgfmypictures.id = %% AND wp_fgfmygprelation.pid = %% AND
wp_fgfmygallery.id =%%;
dbo168278365 18 SET timestamp=%%; update wp_fgfad_manager_bnr_history
set `banners_shown`=`banners_shown`+%% ,
`banners_history_date`=sysdate() where `banners_id`=%% and
`banners_history_date`=%%;
dbo168278365 15 select sum(banners_shown) as total from
wp_fgfad_manager_bnr_history where banners_id = %%;
dbo168278365 11 select sum(banners_shown) as total from
wp_fgfad_manager_bnr_history where banners_id = %% and
banners_history_date>=%%;
dbo168278365 10 select MAX(`banners_history_date`) as
banners_history_date from wp_fgfad_manager_bnr_history;
dbo168278365 10 SELECT `time` FROM `wp_fgfonlinecounter` WHERE ip=%%;
dbo168278365 9 select MAX(banners_history_date) as banners_history_date
from wp_fgfad_manager_bnr_history where banners_id=%%;
dbo168278365 8 select banners_id from wp_fgfad_manager_bnr_history where
`banners_history_date`=%%;
dbo168278365 7 UPDATE `wp_fgfonlinecounter` SET time=%% WHERE ip=%%;
dbo168278365 6 select MAX(`banners_history_date`) as
max_banners_history_date from wp_fgfad_manager_bnr_history;
dbo168278365 4 INSERT INTO wp_fgfslim_stats ( `remote_ip`, `language`,
`country`, `referer`, `domain`, `searchterms`, `resource`, `platform`,
`browser`, `version`, `dt` ) VALUES %%;
dbo168278365 3 SELECT * FROM
wp_fgfmypictures,wp_fgfmygprelation,wp_fgfmygallery WHERE
wp_fgfmypictures.id = %% AND wp_fgfmygprelation.gid = %% AND
wp_fgfmygallery.name = %% AND (wp_fgfmypictures.picexclude IS NULL OR
wp_fgfmypictures.picexclude=%%) ORDER BY wp_fgfmypictures.id;
dbo168278365 2 SELECT * FROM wp_fgfposts WHERE ID = %% LIMIT %%;
dbo168278365 1 SELECT t.*, tt.*, tr.object_id FROM wp_fgfterms AS t
INNER JOIN wp_fgfterm_taxonomy AS tt ON tt.term_id = %% INNER JOIN
wp_fgfterm_relationships AS tr ON tr.term_taxonomy_id = %% WHERE
tt.taxonomy IN %% AND tr.object_id IN %% ORDER BY t.name ASC;
dbo168278365 1 SELECT post_id, meta_key, meta_value FROM wp_fgfpostmeta
WHERE post_id IN %% ORDER BY post_id, meta_key;
dbo168278365 1 SELECT id FROM wp_fgfmygallery WHERE name = %%;
dbo168278365 1 SELECT `country_code` FROM `wp_fgfslim_countries` WHERE
`ip_from` <= %% AND `ip_to` >= %%;
dbo168278365 1 SELECT COUNT(pid) FROM
wp_fgfmypictures,wp_fgfmygprelation,wp_fgfmygallery WHERE
wp_fgfmypictures.id = %% AND wp_fgfmygprelation.gid = %% AND
wp_fgfmygallery.name = %% AND (wp_fgfmypictures.picexclude IS NULL OR
wp_fgfmypictures.picexclude=%%);
dbo168278365 1 SELECT `counter` FROM `wp_fgfvisitcounter` WHERE date=%%;
dbo168278365 1 SELECT p.ID, p.post_title FROM wp_fgfposts AS p WHERE
p.post_date < %% AND p.post_type = %% AND p.post_status = %% LIMIT %%;
rdb63:~# myslowana /db/logs/mysql.slowlog.?.gz -e 'user dbo164426697' -s
user count query_time lock_time rows_sent rows_examined
dbo164426697 131 1161[25](8.86) 423[17](3.23) 421[113](3.21)
121291[2651](925.89)
dbo164426697 29 SELECT mn.*, mnc.news_category_name, mnc.long_name,
u.username, u.first_name, u.last_name FROM cms_module_news mn LEFT OUTER
JOIN cms_module_news_categories mnc ON mnc.news_category_id = %% LEFT
OUTER JOIN cms_users u ON u.user_id = %% WHERE status = %% AND
(upper(mnc.long_name) like upper(%%)) AND ( IFNULL(start_time, %%) < %%)
AND (( IFNULL(end_time, %%) = %%) OR (end_time > %%)) ORDER BY news_date
asc;
dbo164426697 24 SELECT count(mn.news_id) as count FROM cms_module_news
mn LEFT OUTER JOIN cms_module_news_categories mnc ON
mnc.news_category_id = %% LEFT OUTER JOIN cms_users u ON u.user_id = %%
WHERE status = %% AND (upper(mnc.long_name) like upper(%%)) AND (
IFNULL(start_time, %%) < %%) AND (( IFNULL(end_time, %%) = %%) OR
(end_time > %%));
dbo164426697 19 SELECT * FROM cms_content WHERE content_id = %%;
dbo164426697 16 SELECT A.value,B.id,B.name,B.type FROM
cms_module_news_fieldvals A, cms_module_news_fielddefs B WHERE
A.fielddef_id = %% AND B.public = %% AND A.news_id = %% ORDER BY
B.item_order;
dbo164426697 7 SELECT * FROM tvh_content WHERE content_id = %%;
dbo164426697 6 SELECT A.value,B.id,B.name,B.type FROM
tvh_module_news_fieldvals A, tvh_module_news_fielddefs B WHERE
A.fielddef_id = %% AND B.public = %% AND A.news_id = %% ORDER BY
B.item_order;
dbo164426697 4 SELECT * FROM tvh_content_props WHERE content_id = %%;
dbo164426697 3 SELECT * FROM cms_content_props WHERE content_id = %%;
dbo164426697 3 SELECT A.value,B.id,B.name,B.type FROM
cms_module_news_fieldvals A, cms_module_news_fielddefs B WHERE
A.fielddef_id = %% AND A.news_id = %% AND B.public = %% ORDER BY
B.item_order;
dbo164426697 2 SELECT mn.*, mnc.news_category_name, mnc.long_name,
u.username, u.first_name, u.last_name FROM cms_module_news mn LEFT OUTER
JOIN cms_module_news_categories mnc ON mnc.news_category_id = %% LEFT
OUTER JOIN cms_users u ON u.user_id = %% WHERE status = %% AND
(mnc.news_category_name = %% OR mnc.news_category_name = %%) AND (
IFNULL(start_time, %%) < %%) AND (( IFNULL(end_time, %%) = %%) OR
(end_time > %%)) LIMIT %%;
dbo164426697 2 SELECT mn.*, mnc.news_category_name FROM cms_module_news
mn LEFT OUTER JOIN cms_module_news_categories mnc ON
mnc.news_category_id = %% WHERE status = %% AND news_id = %%;
dbo164426697 1 SELECT content_id FROM cms_content WHERE default_content
= %%;
dbo164426697 1 SELECT htmlblob_id, htmlblob_name, html, owner,
modified_date FROM cms_htmlblobs WHERE htmlblob_name = %%;
dbo164426697 1 SELECT c.content_id, c.content_name, c.content_alias,
c.menu_text, c.titleattribute, c.hierarchy, c.metadata, c.id_hierarchy,
c.prop_names, c.create_date AS c_create_date, c.modified_date AS c_date,
c.cachable, c.last_modified_by, t.template_id, t.encoding,
t.modified_date AS t_date FROM tvh_templates t INNER JOIN tvh_content c
ON c.template_id = %% WHERE (c.content_alias = %% OR c.content_id = %%)
AND c.active = %%;
dbo164426697 1 SELECT module_name,template_name,modified_date FROM
tvh_module_templates;
dbo164426697 1 SELECT * FROM tvh_userplugins;
dbo164426697 1 UPDATE tvh_siteprefs SET sitepref_value = %% WHERE
sitepref_name = %%;
dbo164426697 1 SELECT count(mn.news_id) as count FROM tvh_module_news mn
LEFT OUTER JOIN tvh_module_news_categories mnc ON mnc.news_category_id =
%% LEFT OUTER JOIN tvh_users u ON u.user_id = %% WHERE status = %% AND
(mnc.news_category_name = %%) AND ( IFNULL(start_time, %%) < %%) AND ((
IFNULL(end_time, %%) = %%) OR (end_time > %%));
dbo164426697 1 SELECT module_name,template_name,modified_date FROM
cms_module_templates;
dbo164426697 1 SELECT mn.*, mnc.news_category_name, mnc.long_name,
u.username, u.first_name, u.last_name FROM tvh_module_news mn LEFT OUTER
JOIN tvh_module_news_categories mnc ON mnc.news_category_id = %% LEFT
OUTER JOIN tvh_users u ON u.user_id = %% WHERE status = %% AND
(mnc.news_category_name = %%) AND ( IFNULL(start_time, %%) < %%) AND ((
IFNULL(end_time, %%) = %%) OR (end_time > %%)) LIMIT %%;
dbo164426697 1 SELECT c.content_id, c.content_name, c.content_alias,
c.menu_text, c.titleattribute, c.hierarchy, c.metadata, c.id_hierarchy,
c.prop_names, c.create_date AS c_create_date, c.modified_date AS c_date,
c.cachable, c.last_modified_by,t.template_id, t.encoding,
t.modified_date AS t_date FROM tvh_templates t INNER JOIN tvh_content c
ON c.template_id = %% WHERE c.content_alias = %% AND c.active = %%;
dbo164426697 1 SELECT * FROM tvh_modules WHERE admin_only = %% AND
active = %% ORDER by module_name;
dbo164426697 1 SELECT sitepref_name, sitepref_value from tvh_siteprefs;
dbo164426697 1 SELECT content_id FROM tvh_content WHERE default_content
= %%;
dbo164426697 1 SELECT COUNT(*) AS total FROM tvh_module_guestbook WHERE
approved=%%;
dbo164426697 1 SELECT sitepref_value from tvh_siteprefs WHERE
sitepref_name = %%;
dbo164426697 1 SELECT DISTINCT A.css_id,A.media_type,B.assoc_order FROM
tvh_css A, tvh_css_assoc B WHERE A.css_id = %% AND B.assoc_type = %% AND
B.assoc_to_id = %% ORDER BY B.assoc_order; 
Danke für eure Mühen,
ich probiere das full page caching bei Zeit aus
mike-r

Re: Off-Topic: Hoster beschwert sich aufgrund zu hoher Datenbankauslastung

Post by mike-r »

Tobik, Du hast höchstwahrscheinlich zwar Recht, was die Serverlast angeht (kenne mich da nicht aus), vergisst aber die Last pro Datenbank.
Wenn der Hoster meint, ein Problem mit der Datanbanklast zu haben, dann sollte man ihm den Gefallen tun. Was er mit seinem Server macht, ist dann sein Problem.

Als positiver Nebeneffekt fällt ja noch ab, dass die Seiten (vom Kunden) schneller werden, wenn man nicht alle in eine DB quetscht, ich würde da nicht zögern.
oliver204
Forum Members
Forum Members
Posts: 122
Joined: Tue Jun 06, 2006 9:22 pm

Re: Off-Topic: Hoster beschwert sich aufgrund zu hoher Datenbankauslastung

Post by oliver204 »

OK, und was "soll ich dann tun" ? ;)
NaN

Re: Off-Topic: Hoster beschwert sich aufgrund zu hoher Datenbankauslastung

Post by NaN »

Zunächst mal die Fragen beantworten was für ein Webspacepaket Du hast, bei welchem Provider Du bist und wieviele Datenbanken Du mit dem aktellen Paket zu Verfügung hättest?
Wenn Du mehr als eine hast, dann teile die Datenbanken erstmal auf.
Somit halbiert sich die Last pro Datenbank (ungefähr).
Vielleicht ist Dein Problem damit ja schon fürs Erste gelöst.

Als nächstes würde ich bei den häufiger besuchten Seiten mit dem Tunning anfangen.
oliver204
Forum Members
Forum Members
Posts: 122
Joined: Tue Jun 06, 2006 9:22 pm

Re: Off-Topic: Hoster beschwert sich aufgrund zu hoher Datenbankauslastung

Post by oliver204 »

Hi NaN
1&1 Business 5.0
MySQL4.0 94.65 MB von 100  MB frei
NaN

Re: Off-Topic: Hoster beschwert sich aufgrund zu hoher Datenbankauslastung

Post by NaN »

Wenn ich richtig gelesen habe, hast Du damit 5 Datenbanken zur Verfügung, oder?
Sofern Du die anderen Datenbanken nicht benötigst, könntest Du somit pro Datenbank zwei CMSms Installationen laufen lassen.
oliver204
Forum Members
Forum Members
Posts: 122
Joined: Tue Jun 06, 2006 9:22 pm

Re: Off-Topic: Hoster beschwert sich aufgrund zu hoher Datenbankauslastung

Post by oliver204 »

ohja, wo du Recht hast!

kann ich einfach ein mysql dump der betreffenden Datenbank Einträge machen, Daten kopieren, config.php anpassen und gut? :)
Post Reply

Return to “German - Deutsch”