Server Support Forum
Anzeige:


Zurück   Server Support Forum > Serverdienste > SQL


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
  #1  
Alt 02.01.2008, 18:07
Registered User
 
Registriert seit: 01.2008
Beiträge: 3
Tuning Script

Hallo Leute,

habe das primer tuning script nun für fast 7 Tage laufen lassen. Was könnte ich noch verbessern. Bin für jeden Vorschlag dankbar..

Gruß,

Tim

MySQL Version 5.0.18-Max-log i686

Uptime = 6 days 18 hrs 17 min 57 sec
Avg. qps = 18
Total Questions = 10636813
Threads Connected = 3

Server has been running for over 48hrs.
It should be safe to follow these recommendations

To find out more information on how each of these
runtime variables effects performance visit:
MySQL AB :: MySQL 5.0 Reference Manual :: 5.1.3 System Variables

SLOW QUERIES
Current long_query_time = 3 sec.
You have 3587 out of 10636813 that take longer than 3 sec. to complete
The slow query log is enabled.
Your long_query_time seems to be fine

MAX CONNECTIONS
Current max_connections = 130
Current threads_connected = 3
Historic max_used_connections = 22
The number of used connections is 16% of the configured maximum.
Your max_connections variable seems to be fine.

WORKER THREADS
Current thread_cache_size = 12
Current threads_cached = 10
Current threads_per_sec = 0
Historic threads_per_sec = 0
Your thread_cache_size is fine

MEMORY USAGE
/usr/bin/tuning.sh: line 994: let: expression expected
Max Memory Ever Allocated : 252 M
Configured Max Memory Limit : 502 M
Total System Memory : 5078 M

KEY BUFFER
Current MyISAM index space = 23 M
Current key_buffer_size = 128 M
Key cache miss rate is 1 / 8692
Key buffer fill ratio = 15.00 %
Your key_buffer_size seems to be too high.
Perhaps you can use these resources elsewhere

QUERY CACHE
Query cache is enabled
Current query_cache_size = 64 M
Current query_cache_used = 20 M
Current Query cache fill ratio = 31.50 %

SORT OPERATIONS
Current sort_buffer_size = 2 M
Current record/read_rnd_buffer_size = 256.00 K
Sort buffer seems to be fine

JOINS
Current join_buffer_size = 128.00 K
You have had 153091 queries where a join could not use an index properly
You should enable "log-queries-not-using-indexes"
Then look for non indexed joins in the slow query log.
If you are unable to optimize your queries you may want to increase your
join_buffer_size to accommodate larger joins in one pass.

TABLE CACHE
Current table_cache value = 1412 tables
You have a total of 631 tables
You have 1105 open tables.
The table_cache value seems to be fine

TEMP TABLES
Current tmp_table_size = 32 M
57% of tmp tables created were disk based
Perhaps you should increase your tmp_table_size

TABLE SCANS
Current read_buffer_size = 128.00 K
Current table scan ratio = 182 : 1
read_buffer_size seems to be fine

TABLE LOCKING
Current Lock Wait ratio = 1 : 182
You may benefit from selective use of InnoDB.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten

  #2  
Alt 03.01.2008, 19:45
Registered User
 
Registriert seit: 01.2007
Beiträge: 405

wieviel RAM hat der Server?

Ändern würde ich:
Code:
[mysqld]

key_buffer = 32M
net_buffer_length = 8K

sort_buffer_size = 256K
myisam_sort_buffer_size = 256K
read_buffer_size = 128K
read_rnd_buffer_size = 256K
join_buffer_size = 1M

query_cache_size = 32M
thread_cache = 12 oder 24
table_cache = 1280

max_connections = 130
low_priority_updates = 1
long_query_time = 2
wichtig sind
Code:
Max Memory Ever Allocated : 252 M
Configured Max Memory Limit : 502 M
und sollten dem RAM vom Server angepasst sein. Hat man für MySQL nur 50 MB zur Verfügung, sollte Configured Max Memory Limit auch nur 50 M sein.

Um den RAM Verbrauch zu mindern kann man die buffers/caches kleiner machen oder die max_connections kleiner machen. Du hast ja max_connections = 130. Daraus resultieren dann auch die 502 M bei Max Memory Limit. Tatsächlich wurden aber bisher max 252 M benötigt da du ja auch nur 22 Historic Max Used Connections hattest.

Wenn dein Server 1 GB RAM hat, würde ich in der servertuning.conf einstellen
Code:
Timeout 30
KeepAlive On
MaxKeepAliveRequests 150
KeepAliveTimeout 2

<IfModule prefork.c>
StartServers       1
MinSpareServers    2
MaxSpareServers    5
ServerLimit       40
MaxClients        40
MaxRequestsPerChild  4000
und in der my.cnf die
Code:
max_connections = 40
wie bei MaxClients setzen. Apache kann dann 40 Seitenaufrufe gleichzeitig handhaben.

Generall könnte man ja sagen:

Laut Tuning Primer Script hattest du max 22 MySQL Connections gleichzeitig. Nun könnte man behaupten, die max_connections werden wohl nicht mehr werden. Darum können wir Apache so konfigurieren, daß Apache auch lediglich 22 'Connections' handhaben muß, also MaxClients 22

Apache würde dann ~ 22 x 15 MB = 330 MB RAM verbrauchen und für MySQL hätte man dann bei 1 GB RAM ~ 520 MB zur Verfügung. Damit lassen sich sehr große buffers/caches machen.

Nur was nutzt es, wenn man key_buffer 128M hat, tatsächlich aber nur 18M benötigt werden? Dann lieber die buffers/caches so klein machen wie man sie benötigt und dafür die max_connections und MaxClients höher machen.

Regel:

Je mehr gleichzeitige Seitenaufrufe man hat (max_connections, MaxClients), desto kleiner müssen die buffers/caches werden damit der RAM nicht ausgeht.

Anleitung:

man muß Apache und MySQL RAM zuweisen, also ein Limit setzen. Dazu ermittelt man den RAM Verbrauch eines Tasks (Child) mit
Code:
ps -ylC httpd --sort:rss
oder
Code:
ps axu --sort:command
RSS in KB

Hat der Server 1 GB RAM, ziehen wir pauschal ~ 150 MB für Linux, Plesk, Dr. Web, Spamassassin, ect. ab. (im Einzalfall sollten man den RAM Verbrauch von Plesk ect. selbst ermitteln).

1024 MB - 150 MB = 874 MB

MySQL weisen wir ~ 100 MB zu, bleiben für Apache noch 774 MB RAM. Diese teilen wir nun durch 15 MB (RSS Wert), also 774 : 15 = 50 MaxClienst (servertuning.conf).

In der my.cnf setzen wir die max_connections auch auf 50 und machen die buffers/caches und Variables so groß, das Configured Max Memory Limit 100M nicht überschritten wird.

Haben wir laut Tuning Primer Script zu kleinen key_buffer oder join_buffer ect. sollten wir diesen erhöhen! Da wir dann aber die 100M überschreiten, müssen wir die MaxClients (servertuning.conf) und max_connetions (my.cnf) reduzieren, z.B. von 50 auf 49 oder 48.

Geändert von noto (03.01.2008 um 20:39 Uhr)
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
Antwort

Lesezeichen


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

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

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wer ist im IRC Script Problem Piti IRC 2 07.06.2007 21:50
Herausfinden, welches Script die hohe Serverload verursacht? keksausmainz Virtuelle Server 10 25.08.2006 11:12
[B] Script nach der Neuinstallion eines Debian Root Server Mepo Dedizierte Server 0 14.07.2005 21:16





Alle Zeitangaben in WEZ +1. Es ist jetzt 23:59 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Du hast dieses Thema bewertet: