MySQL Performance Tuning mit Tuning-Primer.sh Script

mysql: unknown variable 'mysql.allow_persistent=Off'
Der Fehler ist in der my.cf oder ~/my.cf zu finden. Dort steht in der [mysql] irgendwo diese Config.

/usr/bin/tuning-primer.sh: line 534: /: syntax error: operand expected (error token is "/")
Was steht bei Dir in Zeile 534?
Oder: Welche Versions-Nummer von tuning-primer verwendest Du?

huschi.
 
Hallo Huschi,

mysql: unknown variable 'mysql.allow_persistent=Off'

Der Fehler ist in der my.cf oder ~/my.cf zu finden. Dort steht in der [mysql] irgendwo diese Config.
Das steht bei mir in der my.cnf (ist aber wohl das selbe. Oder?). Was muss ich nun damit machen, die Zeile löschen/kommentieren?

/usr/bin/tuning-primer.sh: line 534: /: syntax error: operand expected (error token is "/")

Was steht bei Dir in Zeile 534?
Oder: Welche Versions-Nummer von tuning-primer verwendest Du?
In Zeile 534 steht:
PHP:
queries_per_sec=$(($questions/$uptime))
und Version ist: 1.5-r5 / Released: 2009-11-22

Vielen Dank, Alex
 
Was muss ich nun damit machen, die Zeile löschen/kommentieren?
Du kannst auch die ganze Datei löschen.
Damit hast Du 3 Möglichkeiten die alle zum Ziel führen. Darfst Dir selber aussuchen, was Du davon umsetzt.

Version ist: 1.5-r5 / Released: 2009-11-22
Ok, Du hast die neueste Version. Aber der Fehler könnte ein Folgefehler von oben sein. Mach also erstmal das Eine...

huschi.
 
:) Jau, jetzt läufts. Muss nun eben nur noch warten bis der Server 48 Stunden gelaufen ist.

Eine letzte Frage hätte ich noch: Was macht bzw. was macht 'mysql.allow_persistent' nicht?

Danke, Alex
 
Muss nun eben nur noch warten bis der Server 48 Stunden gelaufen ist.
Da die Änderung nur in der [mysql]-Sektion stattfand war ein Server-Restart unnötig. Denn diese Einstellungen gelten nur für den Client.

Was macht bzw. was macht 'mysql.allow_persistent' nicht?
Soll ich das für Dich googlen? Oder kannst Du das vielleicht doch alleine?

huschi.
 
Was macht bzw. was macht 'mysql.allow_persistent' nicht?

Soll ich das für Dich googlen? Oder kannst Du das vielleicht doch alleine?
:rolleyes: hätte ja sein können ...

Hier wird angegeben, ob als Verbindung zu einem MySQL-Server auch persistente Links möglich sind oder nicht.
Persistent heißt in diesem Fall, dass die Verbindung zur Datenbank auch dann besteht, wenn das Skript bzw. dessen Ausführung schon beendet ist.

Der Standardwert dieses Parameters beträgt "On".
Verstehe ich das richtig? Wenn man den Parameter auf 'off' stellt, dann muss bei einem erneuten Aufruf eines Users eine erneute Verbindung zur Datenbank hergestellt werden. Sprich die CPU wird belastet!?

Danke, Alex
 
Ja, aber in der (von Dir nicht genannten) Quelle steht auch für welches Programm dieser Parameter gilt.

huschi.
 
Hallo können Sie auch meine server optimieren bitte...

in server gibst ein vbulletin big board und paar flash game seite.

ich benutze WHM+cpanel meine webserver ist Litespeed


PHP 5.2.12
MySQL 5.1.40

Code:
[mysqld]
skip-networking
#skip-name-resolve
safe-show-database
#old_passwords
back_log = 50
max_connections = 64
key_buffer = 512M
long_query_time = 4
myisam_sort_buffer_size = 64M
join_buffer_size = 3M
read_buffer_size = 3M
sort_buffer_size = 3M
table_cache = 512
thread_cache_size = 512
wait_timeout = 150
connect_timeout = 30
tmp_table_size = 32M
max_heap_table_size = 32M
max_allowed_packet = 64M
net_buffer_length = 16384
max_connect_errors = 100000
thread_concurrency = 16
concurrent_insert = 2
table_lock_wait_timeout = 30
read_rnd_buffer_size = 4M
bulk_insert_buffer_size = 64M
query_cache_limit = 64M
query_cache_size = 64M
query_cache_type = 1
query_prealloc_size = 262144
query_alloc_block_size = 65536
range_alloc_block_size = 4096
transaction_alloc_block_size = 8192
transaction_prealloc_size = 4096
max_write_lock_count = 8
low_priority_updates=1

[mysqld_safe]
nice = -5
open_files_limit = 8192

[mysqldump]
quick
max_allowed_packet = 128M

[myisamchk]
key_buffer = 256M
sort_buffer = 64M
read_buffer = 16M
write_buffer = 16M


Code:
Processor #1 Vendor: GenuineIntel
Processor #1 Name: Intel(R) Xeon(R) CPU           W3520  @ 2.67GHz
Processor #1 speed: 2668.000 MHz
Processor #1 cache size: 8192 KB

Processor #2 Vendor: GenuineIntel
Processor #2 Name: Intel(R) Xeon(R) CPU           W3520  @ 2.67GHz
Processor #2 speed: 2668.000 MHz
Processor #2 cache size: 8192 KB

Processor #3 Vendor: GenuineIntel
Processor #3 Name: Intel(R) Xeon(R) CPU           W3520  @ 2.67GHz
Processor #3 speed: 2668.000 MHz
Processor #3 cache size: 8192 KB

Processor #4 Vendor: GenuineIntel
Processor #4 Name: Intel(R) Xeon(R) CPU           W3520  @ 2.67GHz
Processor #4 speed: 2668.000 MHz
Processor #4 cache size: 8192 KB

Processor #5 Vendor: GenuineIntel
Processor #5 Name: Intel(R) Xeon(R) CPU           W3520  @ 2.67GHz
Processor #5 speed: 2668.000 MHz
Processor #5 cache size: 8192 KB

Processor #6 Vendor: GenuineIntel
Processor #6 Name: Intel(R) Xeon(R) CPU           W3520  @ 2.67GHz
Processor #6 speed: 2668.000 MHz
Processor #6 cache size: 8192 KB

Processor #7 Vendor: GenuineIntel
Processor #7 Name: Intel(R) Xeon(R) CPU           W3520  @ 2.67GHz
Processor #7 speed: 2668.000 MHz
Processor #7 cache size: 8192 KB

Processor #8 Vendor: GenuineIntel
Processor #8 Name: Intel(R) Xeon(R) CPU           W3520  @ 2.67GHz
Processor #8 speed: 2668.000 MHz
Processor #8 cache size: 8192 KB

             Memory Information                   Memory: 12320076k/13631488k available (12056k kernel code, 1057732k absent, 253680k reserved, 890k data, 600k init)
               
             System Information                   Linux ns209652.ovh.net 2.6.32.2-xxxx-grs-ipv4-64 #1 SMP Tue Dec 29 14:41:12 UTC 2009 x86_64 x86_64 x86_64 GNU/Linux
               
             Physical Disks                   sd 0:0:0:0: [sda] 156301488 512-byte logical blocks: (80.0 GB/74.5 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 1:0:0:0: [sdb] 156301488 512-byte logical blocks: (80.0 GB/74.5 GiB)
sd 1:0:0:0: [sdb] Write Protect is off
sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 1:0:0:0: [sdb] Attached SCSI disk
sd 0:0:0:0: [sda] Attached SCSI disk
Code:
             Current Memory Usage                                total       used       free     shared    buffers     cached
Mem:      12320676    9556776    2763900          0     363876    7208584
-/+ buffers/cache:    1984316   10336360
Swap:     49153200      51260   49101940
Total:    61473876    9608036   51865840
               
             Current Disk Usage                   Filesystem            Size  Used Avail Use% Mounted on
/dev/md1               20G  7.3G   12G  40% /
/dev/md2               32G   14G   17G  45% /home
tmpfs                 5.9G     0  5.9G   0% /dev/shm
/usr/tmpDSK           485M   60M  400M  13% /tmp

Code:
 -- MYSQL PERFORMANCE TUNING PRIMER --
             - By: Matthew Montgomery -

MySQL Version 5.1.40 x86_64

Uptime = 2 days 7 hrs 4 min 30 sec
Avg. qps = 105
Total Questions = 20967237
Threads Connected = 1

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:
http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html
Visit http://www.mysql.com/products/enterprise/advisors.html
for info about MySQL's Enterprise Monitoring and Advisory Service

SLOW QUERIES
The slow query log is NOT enabled.
Current long_query_time = 4.000000 sec.
You have 5 out of 20967262 that take longer than 4.000000 sec. to complete
Your long_query_time seems to be fine

BINARY UPDATE LOG
The binary update log is NOT enabled.
You will not be able to do point in time recovery
See http://dev.mysql.com/doc/refman/5.1/en/point-in-time-recovery.html

WORKER THREADS
Current thread_cache_size = 512
Current threads_cached = 19
Current threads_per_sec = 0
Historic threads_per_sec = 0
Your thread_cache_size is fine

MAX CONNECTIONS
Current max_connections = 64
Current threads_connected = 1
Historic max_used_connections = 20
The number of used connections is 31% of the configured maximum.
Your max_connections variable seems to be fine.

INNODB STATUS
Current InnoDB index space = 144 K
Current InnoDB data space = 5 M
Current InnoDB buffer pool free = 30 %
Current innodb_buffer_pool_size = 8 M
Depending on how much space your innodb indexes take up it may be safe
to increase this value to up to 2 / 3 of total system memory

MEMORY USAGE
Max Memory Ever Allocated : 1.04 G
Configured Max Per-thread Buffers : 848 M
Configured Max Global Buffers : 810 M
Configured Max Memory Limit : 1.61 G
Physical Memory : 11.74 G
Max memory limit seem to be within acceptable norms

KEY BUFFER
Current MyISAM index space = 869 M
Current key_buffer_size = 736 M
Key cache miss rate is 1 : 1187
Key buffer free ratio = 58 %
Your key_buffer_size seems to be fine

QUERY CACHE
Query cache is enabled
Current query_cache_size = 64 M
Current query_cache_used = 27 M
Current query_cache_limit = 64 M
Current Query cache Memory fill ratio = 42.52 %
Current query_cache_min_res_unit = 4 K
MySQL won't cache query results that are larger than query_cache_limit in size

SORT OPERATIONS
Current sort_buffer_size = 3 M
Current read_rnd_buffer_size = 4 M
Sort buffer seems to be fine

JOINS
Current join_buffer_size = 3.00 M
You have had 45212 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.

Note! This script will still suggest raising the join_buffer_size when
ANY joins not using indexes are found.

OPEN FILES LIMIT
Current open_files_limit = 4096 files
The open_files_limit should typically be set to at least 2x-3x
that of table_cache if you have heavy MyISAM usage.
Your open_files_limit value seems to be fine

TABLE CACHE
Current table_open_cache = 1000 tables
Current table_definition_cache = 256 tables
You have a total of 270 tables
You have 376 open tables.
The table_cache value seems to be fine
You should probably increase your table_definition_cache value.

TEMP TABLES
Current max_heap_table_size = 32 M
Current tmp_table_size = 32 M
Of 439281 temp tables, 22% were created on disk
Created disk tmp tables ratio seems fine

TABLE SCANS
Current read_buffer_size = 3 M
Current table scan ratio = 3596 : 1
read_buffer_size seems to be fine

TABLE LOCKING
Current Lock Wait ratio = 1 : 504
You may benefit from selective use of InnoDB.

mfg
 
Last edited by a moderator:
Deine MySQL Variablen in der my.cnf sind ausreichend dimensioniert. MySQL nimmt sich bei deiner Konfiguration im Extremfall bis zu 1,6 GB RAM. Wenn dieser nicht zur Verfügung steht, lagert MySQL auf Festplatte aus (Swap).

Mußt also sicherstellen, daß MySQL im Extremfall die vollen 1,6 GB RAM zur Verfügung hat.

Vorgehensweise:

1. in der
Code:
/etc/httpd/conf/httpd.conf
schauen, wieviele MaxClients bei
Code:
<IfModule prefork.c>
MaxClients        20
eingetragen sind.

Diese Anzahl an MaxClients multiplizierst du mit 13 MB. Also wenn du MaxClients = 50 hast, 50 multipliziert mit 13 MB = 650 MB RAM.

Zu diesen 650 MB kommen dann nochmal pauschal ca. 200 MB Für Linux, cpanel ect.
Macht zuammen 850 MB.

Dein Server sollte dann mindestens 850 MB + 1600 MB (MySQL) = 2,45 GB RAM haben. Wenn dein Server nur 2 GB RAM hat, dann solltest du die Variablen, insbesondere die Buffers, Caches und Threads in der my.cnf kleiner machen z.B. halbieren, so daß MySQL im Extremfall maximal 1,15 GB RAM in Anspruch nimmt (850 MB + 1,15 GB = 2 GB).

Code:
MEMORY USAGE
[COLOR="Blue"]Configured Max Memory Limit : 1.15 GB[/COLOR]

Man limminiert sozusagen den RAM Verbrauch von Apache und MySQL, so daß bei 100% Auslastung der Server zwar keine neuen Connections zuläßt, er aber nicht in die Knie geht.

Wenn man sehr viele gleichzeitige Verbindungen benötigt, sollte man in der
Code:
/etc/httpd/conf/httpd.conf

Timeout 30
KeepAlive On
MaxKeepAliveRequests 150
KeepAliveTimeout 2

eintragen.
 
Last edited by a moderator:
Also ich bekomme das einfach nicht zum Laufen bei mir. Die Standardanleitung, die so leicht ist, funktioniert bei mir nicht.

Ich habe alles wie beschrieben gemacht.


HTML:
Using login values from ~/.my.cnf
- INITIAL LOGIN ATTEMPT FAILED -
Testing for stored webmin passwords:
 None Found
Could not auto detect login info!
Found Sockets: /var/run/mysqld/mysqld.sock
Using: /var/run/mysqld/mysqld.sock
Would you like to provide a different socket?: [y/N] n
Do you have your login handy ? [y/N] : y
User: root
Password: xxxxxxxxxxxxxx

Would you like me to create a ~/.my.cnf file for you? [y/N] : n
- FINAL LOGIN ATTEMPT FAILED -
Unable to log into socket: /var/run/mysqld/mysqld.sock
root@lvps83-169-7-86:~#

Die tuning-primer.sh befindet sich im Ordner /etc/mysql/

mit chmod 777

Ich habe dort den gleichen Socket pfad angegeben wie in der my.cnf, die sich auch dort befindet.


Ich weiss da nicht mehr weiter:mad::confused:
 
Evtl. hört der MySQL aber gar nicht auf Socket-Connections?
Teste es einfach mal selber:
Code:
mysql -S /var/run/mysqld/mysqld.sock

huschi.
 
Also das hat er gesagt:

HTML:
root@lvps83-169-7-86:~# mysql -S /var/run/mysqld/mysqld.sock
Warning: World-writable config file '/etc/mysql/my.cnf' is ignored
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: Y          ES)

Wo kann ich den die Einstellungen der Socket connections konfigurieren?
 
Last edited by a moderator:
mysqld is alive


heißt das nicht, dass die Socketverbindung steht?

Ich habs--> Fehlermeldungen führen dazu, dass die Socketverbindung nicht ausgeführt wird. Dadurch erscheint mysqld als deaktiviert.

Also alle Fehlermeldungen beseitigen und schon läuft es.
 
Last edited by a moderator:
Ubuntu mit Apache + MSQL

Guten Tag liebe Leut...
ich hoffe Ihr könnt mir helfen... habe mich schon ein wenig durch dieses Thema gelesen, aber iwi werde ich nicht ganz schlau.

Das system läuft auf nem ESX Server mit 2GB Ram und 2 vCPU's.
Er kann aber falls benötigt noch 2-4 GB mehr Ram bekommen.

Auf diesem System läuft ein Gruppenkalender mit Adressbuch usw.
Sobald nun jemand seine Adressen synchronisiert, steigt der Mysql prozess auf knapp 100% und das ganze System wird langsam.
PHP:
top - 11:16:28 up 11 days, 18:12,  3 users,  load average: 0.58, 0.51, 0.24
Tasks: 108 total,   2 running, 106 sleeping,   0 stopped,   0 zombie
Cpu0  :  6.2%us, 41.2%sy,  0.0%ni, 52.6%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu1  :  3.2%us, 30.6%sy,  0.0%ni, 66.1%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2061696k total,   932200k used,  1129496k free,   388884k buffers
Swap:   905208k total,        0k used,   905208k free,   341908k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 5884 mysql     20   0  133m  27m 6028 R 89.2  1.4   3:45.01 mysqld
 5916 root      20   0  2536 1260  960 S  2.3  0.1   0:06.47 htop
 5463 www-data  20   0 44296  16m 5184 S  1.3  0.8   0:03.86 apache2
 5469 www-data  20   0 44268  16m 4660 S  1.3  0.8   0:03.54 apache2
 5671 mysql     20   0  133m  27m 6028 S  0.7  1.4   1:25.57 mysqld
   31 root      20   0     0    0    0 S  0.3  0.0   0:38.76 pdflush
 5980 root      20   0  2444 1156  884 R  0.3  0.1   0:00.48 top
    1 root      20   0  2528 1416 1100 S  0.0  0.1   0:04.77 init
    2 root      15  -5     0    0    0 S  0.0  0.0   0:00.00 kthreadd
    3 root      RT  -5     0    0    0 S  0.0  0.0   0:00.04 migration/0
    4 root      15  -5     0    0    0 S  0.0  0.0   0:02.80 ksoftirqd/0
    5 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/0
    6 root      RT  -5     0    0    0 S  0.0  0.0   0:00.68 migration/1
    7 root      15  -5     0    0    0 S  0.0  0.0   0:21.10 ksoftirqd/1
    8 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/1
    9 root      15  -5     0    0    0 S  0.0  0.0   0:05.29 events/0

Habe momentan die Standard my.cnf und apache.cnf

Das tuning Script habe ich irgendwie nicht zum laufen bekommen,
konnte sich die Daten nicht aus der my.cnf saugen.

Würde mich über ein bisschen Nachhilfe sehr freuen.
 
Back
Top