ďťż
 
serwer mysql - wydajnosc ďťż
 
serwer mysql - wydajnosc
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

serwer mysql - wydajnosc



Marcin Wojdak - 13-11-2006 00:14
serwer mysql - wydajnosc
  Witam,

Mamy w firmie serwer (2xXeon 3.0GHz, 4GB RAM, macierz RAID 5 na 5 dyskach
SAS) z zainstalowanym systemem RedHat Enterprise Linux 4. Dziala na tym
mysql 4.1.12, apache 2.0.52 i php 4.3.9. Baza danych to ok. 6GB.

Niestety mamy problemy z wydajnoscia tego serwera. Zdarzylo sie
kilkukrotnie, ze serwer zatkal sie i nie przetwarzal zadnych zapytan -
apache nie odpowiadal na zapyania z przegladarki. po restarcie apache'a. W
statusie serwera threads_running pokazywal na 45, podczas gdy normalnie jest
to 1 lub 2. W configu do mysql mam ustawione threads_concurrency na 4, wiec
chyba serwer nie powinien pozwolic na uruchomienie jednoczesne wiecej niz 4
watkow? Jak sprawdzic jak rzeczywiscie jest ustawiona thread_concurrency
(mysqladmin variables nie pokazuje takiej zmiennej wcale)?

Liczba zapytan na sekunde podawana przez mytop w momencie takiego zapchania
skacze do ponad 1000.

Moze ktos z Was spotkal sie z podobnym problemem (zwlaszcza w kontekscie
tych 45 jednoczesnie dzialajacych watkow, ktore serwer zapychaja). Ponizej
moj plik my.cnf

Z gory dzieki za pomoc, lub podpowiedz gdzie szukac przyczyny problemu
(bardziej mysql, czy moze apache lub php).

pozdrawiam, marcin

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
old_passwords=1

language =/usr/share/mysql/polish/
skip-innodb
skip-locking
set-variable = connect_timeout=20
set-variable = max_connections=150

set-variable = max_tmp_tables=300
set-variable = wait_timeout=30
set-variable = thread_concurrency=4
log-slow-queries =/var/log/mysqld_query.log
set-variable = long_query_time=2
set-variable = max_connect_error=1000

set-variable = key_buffer_size=384M
set-variable = thread_cache=40
set-variable = tmp_table_size=200M
set-variable = table_cache=700
set-variable = max_heap_table_size=200M

[mysql.server]
user=mysql
basedir=/var/lib





Radosław Witkowicki - 13-11-2006 00:14

  Marcin Wojdak napisał(a):
> Witam,
>
> Mamy w firmie serwer (2xXeon 3.0GHz, 4GB RAM, macierz RAID 5 na 5 dyskach
> SAS) z zainstalowanym systemem RedHat Enterprise Linux 4. Dziala na tym
> mysql 4.1.12, apache 2.0.52 i php 4.3.9. Baza danych to ok. 6GB.
>

Z taka konfuguracją az proszisz się o wałm ;).




Radosław Witkowicki - 13-11-2006 00:14

  Radosław Witkowicki napisał(a):
> Marcin Wojdak napisał(a):
>> Witam,
>>
>> Mamy w firmie serwer (2xXeon 3.0GHz, 4GB RAM, macierz RAID 5 na 5
>> dyskach SAS) z zainstalowanym systemem RedHat Enterprise Linux 4.
>> Dziala na tym mysql 4.1.12, apache 2.0.52 i php 4.3.9. Baza danych to
>> ok. 6GB.
>>
>
> Z taka konfuguracją az proszisz się o wałm ;).

No zapomniałem dodać, że RAID 5 bardzo służy wydajności :D.




mzobniow - 13-11-2006 00:14

  > Witam,
>
> Mamy w firmie serwer (2xXeon 3.0GHz, 4GB RAM, macierz RAID 5 na 5 dyskach
> SAS) z zainstalowanym systemem RedHat Enterprise Linux 4. Dziala na tym
> mysql 4.1.12, apache 2.0.52 i php 4.3.9. Baza danych to ok. 6GB.
>
> Niestety mamy problemy z wydajnoscia tego serwera. Zdarzylo sie
> kilkukrotnie, ze serwer zatkal sie i nie przetwarzal zadnych zapytan -
> apache nie odpowiadal na zapyania z przegladarki. po restarcie apache'a. W
> statusie serwera threads_running pokazywal na 45, podczas gdy normalnie jest
> to 1 lub 2. W configu do mysql mam ustawione threads_concurrency na 4, wiec
> chyba serwer nie powinien pozwolic na uruchomienie jednoczesne wiecej niz 4
> watkow? Jak sprawdzic jak rzeczywiscie jest ustawiona thread_concurrency
> (mysqladmin variables nie pokazuje takiej zmiennej wcale)?
>
> Liczba zapytan na sekunde podawana przez mytop w momencie takiego zapchania
> skacze do ponad 1000.
>
> Moze ktos z Was spotkal sie z podobnym problemem (zwlaszcza w kontekscie
> tych 45 jednoczesnie dzialajacych watkow, ktore serwer zapychaja). Ponizej
> moj plik my.cnf
>
> Z gory dzieki za pomoc, lub podpowiedz gdzie szukac przyczyny problemu
> (bardziej mysql, czy moze apache lub php).

Wyglada na to ze jakis update blokuje ci tabele. Te procesy ktore widzisz na
liscie maja zapewne status 'locked'. Chyba najlepszym i najszybszym rozwiazaniem
bedzie tutaj zrobienie indexu. Parametr threads_concurrency najlepiej ustawic na
liczbe procesorow w systemie i nie ma on nic wspolnego z dlugoscia kolejki
watkow oczekujacych. Mysql odpiera inserty i updaty do zblokowanej tabeli i
ustawia je w kolejke dopoki nie osiagnie parametru max_connections ktory w Twoim
wypadku wynosi 150.
Czasem warto zainteresowac sie rowniez syntaxem INSERT DELAY...

Pzdr
Maciek

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl





Marcin Wojdak - 13-11-2006 00:14

  >> Z taka konfuguracją az proszisz się o wałm ;).
serwer nie jest wystawiony na swiat

> No zapomniałem dodać, że RAID 5 bardzo służy wydajności :D.
a mozesz cos wiecej... przed tworzeniem tego raida sugerowalem sie
zestawieniami, ze wydajnosc jest podobna co raid 10 na czterech dyskach.
mozna cos jeszcze teraz poprawic?

pozdrawiam, marcin




Radosław Witkowicki - 13-11-2006 00:14

  Marcin Wojdak napisał(a):
>>> Z taka konfuguracją az proszisz się o wałm ;).
> serwer nie jest wystawiony na swiat
>
>> No zapomniałem dodać, że RAID 5 bardzo służy wydajności :D.
> a mozesz cos wiecej... przed tworzeniem tego raida sugerowalem sie
> zestawieniami, ze wydajnosc jest podobna co raid 10 na czterech dyskach.
> mozna cos jeszcze teraz poprawic?

Hmm... Oracle zaleca na RAID 1. Zresztą nie raz widzałem serwery na RAID
5 i chodziło to jak krew z nosa.
Wiesz cały ten problem może być spowodowany złym projektem aplikacji.
Przejrzyj dokładnie archiwum grupy, pamiętam, że był jakiś wątek na ten
temat.




Marcin Wojdak - 13-11-2006 00:14

  > Wyglada na to ze jakis update blokuje ci tabele. Te procesy ktore widzisz
> na
> liscie maja zapewne status 'locked'. Chyba najlepszym i najszybszym
> rozwiazaniem
> bedzie tutaj zrobienie indexu. Parametr threads_concurrency najlepiej
> ustawic na
> liczbe procesorow w systemie i nie ma on nic wspolnego z dlugoscia kolejki
> watkow oczekujacych. Mysql odpiera inserty i updaty do zblokowanej tabeli
> i
> ustawia je w kolejke dopoki nie osiagnie parametru max_connections ktory w
> Twoim
> wypadku wynosi 150.
> Czasem warto zainteresowac sie rowniez syntaxem INSERT DELAY...

Dzieki, juz sprawdzam jak jest z tymi indexami - aplikacja pisana nie przeze
mnie :-( . W logu od slow_queries mam w momencie zaciecia informacje
# Query_time: 1150 Lock_time: 10 Rows_sent: 0 Rows_examined: 0

Nie bardzo wiem do czego odniesc lock_time.

pozdrawiam, marcin




Marcin Wojdak - 13-11-2006 00:14

  > Hmm... Oracle zaleca na RAID 1. Zresztą nie raz widzałem serwery na RAID 5
> i chodziło to jak krew z nosa.
> Wiesz cały ten problem może być spowodowany złym projektem aplikacji.
> Przejrzyj dokładnie archiwum grupy, pamiętam, że był jakiś wątek na ten
> temat.

Ok, dzieki, skupie sie na razie wlasnie na optymalizacji samej aplikacji i
struktury bazy. Natomiast jesli chodzi o ten RAID, to chyba mimo wszystko
RAID 5 powienien byc szybszy niz RAID 1 (ktory przeciez jest tak szybki jak
pojedynczy dysk... w najlepszym przypadku). Ja zastanawialem sie raczej nad
raidem 10.

pozdrawiam, marcin




Michał Kuratczyk - 13-11-2006 00:14

  Marcin Wojdak wrote:
> Ok, dzieki, skupie sie na razie wlasnie na optymalizacji samej aplikacji i
> struktury bazy. Natomiast jesli chodzi o ten RAID, to chyba mimo wszystko
> RAID 5 powienien byc szybszy niz RAID 1 (ktory przeciez jest tak szybki
> jak pojedynczy dysk... w najlepszym przypadku).
RAID5 jest niezły przy odczytach, ale słaby przy zapisach.

> Ja zastanawialem sie raczej nad raidem 10.
I słusznie. To jest zazwyczaj najlepszy wybór dla bazy danych.

--
Michał Kuratczyk
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?= [mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?= [MySQL] =?ISO-8859-2?Q?Wy=B6wietlenie_kolejnej_pozycji=2C_?==?ISO-8859-2?Q?jak=B1_mia=B3by_dany_rekord=2C_gdybym_czyta=B3 _?==?ISO-8859-2?Q?wg_konkretnych_kryteri=F3w=2E_Da_si=EA_=3F?= [mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?= [MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?= [MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?= Gdzie MySQL 4.1, a gdzie 5.0? [MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?= [MS SQL] "set names" (mySQL) w MS SQL [mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • red-hacjenda.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com