Skocz do zawartości
zoozool

Optymalizacja

Polecane posty

Witajcie

proszę o pomoc w optymalizacji mysql, serwer szaleje, czasem zużywa 60% procka load wzrasta do 10

Konfiguracja:

 

./mysqltuner.pl

 

>> MySQLTuner 1.0.0 - Major Hayden <major@mhtx.net>

>> Bug reports, feature requests, and downloads at http://mysqltuner.com/

>> Run with '--help' for additional options and output filtering

 

-------- General Statistics --------------------------------------------------

[--] Skipped version check for MySQLTuner script

[OK] Currently running supported MySQL version 5.0.67-log

[OK] Operating on 64-bit architecture

 

-------- Storage Engine Statistics -------------------------------------------

[--] Status: -Archive -BDB -Federated +InnoDB -ISAM -NDBCluster

[--] Data in MyISAM tables: 387M (Tables: 218)

[--] Data in InnoDB tables: 24M (Tables: 5)

[!!] Total fragmented tables: 25

 

-------- Performance Metrics -------------------------------------------------

[--] Up for: 9m 47s (7K q [12.656 qps], 506 conn, TX: 60M, RX: 1M)

[--] Reads / Writes: 69% / 31%

[--] Total buffers: 106.0M global + 4.4M per thread (200 max threads)

[!!] Maximum possible memory usage: 993.5M (102% of installed RAM)

[OK] Slow queries: 0% (5/7K)

[OK] Highest usage of available connections: 3% (7/200)

[OK] Key buffer size / total MyISAM indexes: 16.0M/122.8M

[OK] Key buffer hit rate: 99.7% (1M cached / 3K reads)

[OK] Query cache efficiency: 32.5% (1K cached / 4K selects)

[OK] Query cache prunes per day: 0

[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 599 sorts)

[!!] Temporary tables created on disk: 41% (141 on disk / 340 total)

[OK] Thread cache hit rate: 98% (7 created / 506 connections)

[OK] Table cache hit rate: 93% (104 open / 111 opened)

[OK] Open file limit used: 5% (190/3K)

[OK] Table locks acquired immediately: 99% (4K immediate / 4K locks)

[!!] InnoDB data size / buffer pool: 24.9M/8.0M

 

-------- Recommendations -----------------------------------------------------

General recommendations:

Run OPTIMIZE TABLE to defragment tables for better performance

MySQL started within last 24 hours - recommendations may be inaccurate

Reduce your overall MySQL memory footprint for system stability

When making adjustments, make tmp_table_size/max_heap_table_size equal

Reduce your SELECT DISTINCT queries without LIMIT clauses

Variables to adjust:

*** MySQL's maximum memory usage is dangerously high ***

*** Add RAM before increasing MySQL buffer variables ***

tmp_table_size (> 64M)

max_heap_table_size (> 16M)

innodb_buffer_pool_size (>= 24M)

 

[mysqld]

default-character-set=latin2

init-connect = "SET NAMES latin2"

language=polish

skip-bdb

#skip-innodb

max_connections = 200

max_user_connections = 10

key_buffer = 16M

myisam_sort_buffer_size = 54M

join_buffer_size = 1M

read_buffer_size = 1M

sort_buffer_size = 2M

table_cache = 1500

thread_cache_size = 128

wait_timeout = 20

connect_timeout = 10

tmp_table_size = 64M

max_allowed_packet = 16M

max_connect_errors = 99999

query_cache_limit = 2M

query_cache_size = 64M

query_cache_type = 1

query_prealloc_size = 16384

query_alloc_block_size = 16384

tmpdir=/tmp

#myisam-recover

local-infile=0

thread_concurrency = 4

 

set-variable = long_query_time=3

log-slow-queries = /home/mysql/log-slow-queries.log

 

[mysqld_safe]

open_files_limit = 8192

 

[mysqldump]

quick

max_allowed_packet = 10M

 

[myisamchk]

key_buffer = 64M

sort_buffer = 64M

read_buffer = 16M

write_buffer = 16M

 

[client]

 

default-character-set=latin2

 

 

AMD Athlon X2 4200+

1 GB RAM DDR

Debian

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość N3T5kY

Run OPTIMIZE TABLE to defragment tables for better performance

uruchom zapytanie OPTIMIZE TABLE

MySQL started within last 24 hours - recommendations may be inaccurate

serwer mysql działa krócej niż 48h - uruchom skrypt po 48h działania mysql

Reduce your overall MySQL memory footprint for system stability

ogranicz zużycie ramu dla mysql

When making adjustments, make tmp_table_size/max_heap_table_size equal

tmp_table_size max_heap_table_size ustaw taką samą wartość dla tych zmiennych

*** MySQL's maximum memory usage is dangerously high ***

maksymalne użycie pamiecu jest za duże

*** Add RAM before increasing MySQL buffer variables ***

dodaj ramu :P

tmp_table_size (> 64M)

max_heap_table_size (> 16M)

innodb_buffer_pool_size (>= 24M)

wartości do zmiany

 

czasem zużywa 60% procka

Mysql tyle zjada czy jakiś inny proces?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

LOL

 

Jak uruchomiłem u siebie to:

[!!] Maximum possible memory usage: 37.9G (3071% of installed RAM)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
tmp_table_size (> 64M)

max_heap_table_size (> 16M)

innodb_buffer_pool_size (>= 24M)

pierwszą wartość ustawiłem na 100

innych nie mam w confingu, dodać je mam ?

 

./mysqltuner.pl

 

>> MySQLTuner 1.0.0 - Major Hayden <major@mhtx.net>

>> Bug reports, feature requests, and downloads at http://mysqltuner.com/

>> Run with '--help' for additional options and output filtering

 

-------- General Statistics --------------------------------------------------

[--] Skipped version check for MySQLTuner script

[OK] Currently running supported MySQL version 5.0.67-log

[OK] Operating on 64-bit architecture

 

-------- Storage Engine Statistics -------------------------------------------

[--] Status: -Archive -BDB -Federated +InnoDB -ISAM -NDBCluster

[--] Data in MyISAM tables: 389M (Tables: 218)

[--] Data in InnoDB tables: 24M (Tables: 5)

[!!] Total fragmented tables: 28

 

-------- Performance Metrics -------------------------------------------------

[--] Up for: 1d 7h 12m 3s (1M q [11.798 qps], 96K conn, TX: 4B, RX: 173M)

[--] Reads / Writes: 62% / 38%

[--] Total buffers: 106.0M global + 4.4M per thread (200 max threads)

[!!] Maximum possible memory usage: 993.5M (102% of installed RAM)

[OK] Slow queries: 0% (1K/1M)

[OK] Highest usage of available connections: 8% (17/200)

[OK] Key buffer size / total MyISAM indexes: 16.0M/122.9M

[OK] Key buffer hit rate: 100.0% (199M cached / 78K reads)

[OK] Query cache efficiency: 39.2% (269K cached / 687K selects)

[!!] Query cache prunes per day: 59888

[OK] Sorts requiring temporary tables: 0% (210 temp sorts / 79K sorts)

[!!] Temporary tables created on disk: 42% (22K on disk / 52K total)

[OK] Thread cache hit rate: 99% (17 created / 96K connections)

[OK] Table cache hit rate: 93% (1K open / 1K opened)

[OK] Open file limit used: 54% (1K/3K)

[OK] Table locks acquired immediately: 99% (680K immediate / 681K locks)

[!!] InnoDB data size / buffer pool: 24.9M/8.0M

 

-------- Recommendations -----------------------------------------------------

General recommendations:

Run OPTIMIZE TABLE to defragment tables for better performance

Reduce your overall MySQL memory footprint for system stability

When making adjustments, make tmp_table_size/max_heap_table_size equal

Reduce your SELECT DISTINCT queries without LIMIT clauses

Variables to adjust:

*** MySQL's maximum memory usage is dangerously high ***

*** Add RAM before increasing MySQL buffer variables ***

query_cache_size (> 64M)

tmp_table_size (> 64M)

max_heap_table_size (> 16M)

innodb_buffer_pool_size (>= 24M)

 

ogranicz zużycie ramu dla mysql

jak ?

 

dodaj ramu tongue.gif

się pomyśli o tym

 

uruchom zapytanie OPTIMIZE TABLE

 

#1064 - Something is wrong in your syntax obok '' w linii 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

hm...chyba muszę tez 'przelecieć' tym swoje serwery - tylko małe pytanie :

 

Czy skrypt tylko zbiera i obrabia dane, czy może też coś zmodyfikować ? Nie chciałbym, żeby mi coś schrzanił.

 

M

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość N3T5kY

Ten skrypt jest bezpieczny.

 

A tak pozatym to chyba robisz kopię ;>?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Ten skrypt jest bezpieczny.

 

to fajnie

 

A tak pozatym to chyba robisz kopię ;>?

 

kopie ? raz na dobę bazy zlatują mi z wszystkich serwerów.

Ale wiesz - wolę zapobiegać niż leczyć - odtwarzanie z kopi, to zawsze trochę pracy , to też duże straty na serwisach - np. kilkaset postów na forach itp itd.

 

M

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zapuściłem skrypt - mam co dokonfigurować, ale mam też małą kwestię....

 

Na dwóch maszynach mam 8G ramu z odpowiednim kernelem 32 bit. Dostaję info ze skryptu :

 

Switch to 64-bit OS - MySQL cannot currently use all of your RAM

 

Czy mogą pojawić się jakieś problemy ?

 

M

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość N3T5kY

Z tego co wiem to wersja linuxów i686 potrafi wykryć 8GB ram :)

 

Zapodaj wynik polecenia:

 

free -m

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Z tego co wiem to wersja linuxów i686 potrafi wykryć 8GB ram :)

 

Zapodaj wynik polecenia:

32 bitowa? Była kiedyś głębsza rozmowa o tym.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Z PAE system może zaadresować 64 GB pamięci.

 

OK, to że system może adresować, to wiem, tylko zastanowił mnie sam Mysql.

Myślałem, że Mysql może mieć problem z pracą na systemie 32 bit i 8 M (zgodnie z komuinkatem z mysqltuner.pl

 

 

M

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość N3T5kY

2,5GB to może nie być nawet 50% jego ogólnej objętości mysql`a ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
2,5GB to może nie być nawet 50% jego ogólnej objętości mysql`a ;)

 

trochę brakuje do 2,5GB , ale lepiej być przygotowanym.

 

M

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×