Přesunutí zátěže z procesoru na paměť

fotka

  • ***
  • 216
    • Zobrazit profil
    • Linux forum
    • E-mail
Přesunutí zátěže z procesoru na paměť
« kdy: 17. 02. 2011, 23:46:47 »
Mám webserver na kterém běží Wordpress blogy. Přetěžují procesor a paměť je ze 70% volná. Jaké hodnoty v /etc/my.cnf bych měl navýšit a o kolik asi?

Jsou tam parametry pro mysql, tak myslím že pokud bych povolil využití více paměti, mohla by se zátěž procesoru snížit?


Citace
[mysqld]
socket = /var/lib/mysql/mysql.sock
safe-show-database
old-password=1
set-variable = max_connections=500
interactive_timeout=100
# wait_timeout default is 600
wait_timeout=1400
connect_timeout=30
thread_cache_size=8
key_buffer=32M
join_buffer=8M
max_allowed_packet=256M
# table_cache default is 1024
table_cache=1800
sort_buffer=32M
record_buffer=8M
thread_cache_size=128
max_user_connections=100

thread_concurrency=4
myisam_sort_buffer_size=64M
query_cache_limit=2M
query_cache_size=32M
query_cache_type=1

[mysql.server]
user=mysql

[safe_mysqld]
err-log=/var/log/mysqld.log
open_files_limit=8192

[mysqldump]
quick
max_allowed_packet=32M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

# isamchk default is 64 64 16 16
[isamchk]
key_buffer=128M
sort_buffer=64M
read_buffer=16M
write_bufer=16M

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

Zatěžuje to hodně jeden blog který má opravdu velké množství článků a je často používán.
« Poslední změna: 17. 02. 2011, 23:48:25 od fotka »
Linux nováček - CeskeForum.com


Pavouk106

  • *****
  • 2 400
    • Zobrazit profil
    • Můj blog
    • E-mail
Re: Přesunutí zátěže z procesoru na paměť
« Odpověď #1 kdy: 18. 02. 2011, 12:01:24 »
Nejsem si jistý, že to bude fungovat tak jednoduše (více RAM = méně procesorového času). Jinak ke změnám v my.cnf bohužel nemůžu nic říct.

Ladislav Kepsta

Re: Přesunutí zátěže z procesoru na paměť
« Odpověď #2 kdy: 23. 02. 2011, 15:09:48 »
Doporucujem si precitat material s nazvom "Mysql tunning" :)

fotka

  • ***
  • 216
    • Zobrazit profil
    • Linux forum
    • E-mail
Re: Přesunutí zátěže z procesoru na paměť
« Odpověď #3 kdy: 25. 02. 2011, 21:14:15 »
Ahoj, doporučuju www.mysqltuner.pl
stáhnete si to na server a spustíte  perl mysqltuner.pl
Potom napíšu Service a dám Enter.

Vypíše vám to statistiku Mysql a navrhne úpravy konfigurace (/etc/my.cnf)

--

Dalí MYsql tunner je: https://launchpad.net/mysql-tuning-primer
staí stáhnout wget http://launchpad.net/mysql-tuning-primer/trunk/xxx/xxx.sh
a spustit sh tunerxxxx.sh
« Poslední změna: 01. 03. 2011, 21:57:23 od fotka »
Linux nováček - CeskeForum.com

PCnity

  • *****
  • 706
    • Zobrazit profil
    • E-mail
Re: Přesunutí zátěže z procesoru na paměť
« Odpověď #4 kdy: 26. 02. 2011, 14:08:27 »
OMG... Keybuffer na 32M? U mna bol na 16G

Pridaj cache! Query cache... Buffery... Pridaj.

Zaujimave ze isamcheck ma vacsie buffery nez mysqld. Inak ten server nemoze byt moc zatazeny ked prezijes len so 100 connections.

Dalej zvys thread concurency... A inom topicu mas vidiet ze ti bezia InnoDB enginovske db... Na tie nezabudaj, nastavenia mas kde?
« Poslední změna: 26. 02. 2011, 14:11:07 od PCnity »


fotka

  • ***
  • 216
    • Zobrazit profil
    • Linux forum
    • E-mail
Re: Přesunutí zátěže z procesoru na paměť
« Odpověď #5 kdy: 26. 02. 2011, 14:56:32 »
Díky PCnity:

Citace
Zaujimave ze isamcheck ma vacsie buffery nez mysqld. Inak ten server nemoze byt moc zatazeny ked prezijes len so 100 connections.
To jsem asi špatně upravil...

Citace
A inom topicu mas vidiet ze ti bezia InnoDB enginovske db... Na tie nezabudaj, nastavenia mas kde?
To je všechno co je v /etc/my.cnf ...

Tu je moje nová konfigurace: http://pastebin.com/K12Gwn92

Citace
key_buffer=256M
join_buffer=512M
max_allowed_packet=512M
table_cache=1800
sort_buffer=256M
record_buffer=64M
thread_cache_size=128
max_user_connections=100
thread_concurrency=6
myisam_sort_buffer_size=64M
max_heap_table_size=256M
tmp_table_size=512M
innodb_buffer_pool_size=724M

query_cache_limit=256M
query_cache_size=64M
query_cache_type=1

Ty co jsem udělal tučným písmem jsem tam manuálně dodal, myslím že tam nebyly. Tak nevím jestli je to špatně...?

Na tom serveru mam několik účtů na každém docela hodně blogů na Wordpressu. Některé mají opravdu velké databáze.

Jeden z blogů mi právě dělá Locked queries tak je možné že příčna je nedostatečná paměť pro ty mysql dotazy.

Co byste doporučili navýšit?

Mám procesor 8 jader, 8GB ram.
Load je teď co jsem zvýšil ty hodnoty asi 2.00 ( 8 ). Z předchozích 4.00 ( 8 ). Load ale nyní běhá občas až na 10 ( 8 ), předtím byl až 20 ( 8 ) i mnohem více. Paměť je ale stabilně obsazená pouze z asi 12%..

děkuji moc,
F.
« Poslední změna: 26. 02. 2011, 15:03:58 od fotka »
Linux nováček - CeskeForum.com

PCnity

  • *****
  • 706
    • Zobrazit profil
    • E-mail
Re: Přesunutí zátěže z procesoru na paměť
« Odpověď #6 kdy: 26. 02. 2011, 22:25:22 »
Pokial mas 8 G ram a ako web server pouzivas apache a PHP ako FCGI daj key buffer kludne aspon 2G.
Apache je nenazrany, ale pohoda.

Pokial pouzivas apache a PHP mas zabudovane ako modul do apache, tak je spotreba ram vacsia, kedze kazdy proces obsahuje aj php. Key buffer mysql daj aspon 1 G.

Inak este jeden faktor je velmi dolezity... Pouzivas nejaky PHP akcelrator? Fakt odporucam eaccelerator, ten mi volakedy na websereveroch znizil zataz cpu NA 20%.

BTW: Nerebootujes nejako casto server? Lebo u mna bola pamat vzdy na 98%... Co mohol dal do cache. A to boli uplne defaultne GNU/Debian Lenny installacie... Proste pamat vyfloodoval na max.

Ukaz nam vystup z free -m
« Poslední změna: 26. 02. 2011, 22:27:02 od PCnity »

fotka

  • ***
  • 216
    • Zobrazit profil
    • Linux forum
    • E-mail
Re: Přesunutí zátěže z procesoru na paměť
« Odpověď #7 kdy: 27. 02. 2011, 11:18:16 »
Citace
[root@server ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          8052       7487        564          0        142       5446
-/+ buffers/cache:       1899       6153
Swap:         1026        404        621

Citace
Default PHP Version (.php files)   5
PHP 5 Handler   suphp
PHP 4 Handler   none
Apache suEXEC     on
Apache 2.2
PHP 5.2.9

Ahoj,

paměť už byla na 18%, a load na 5-12 ( 8 ). Teď jsem provedl následující změny, uvidíme co to udělá..

Nainstaloval EAccelerator for PHP - v0.9.6.1
[mysqld] Key Buffer jsem dal na 2048M
[mysqld] Join Buffer jsem dal na 2048M
[mysqld] Sort buffer jsem dal na 1024M

www.MYSQLTuner.pl mi po kontrole (asi 10 minut běhu Mysql) píše:

[!!] Switch to 64-bit OS - MySQL cannot currently use all of your RAM
[!!] Query cache prunes per day: 20086309
[!!] Joins performed without indexes: 5
[!!] Temporary tables created on disk: 49% (118K on disk / 236K total)
[!!] Table cache hit rate: 3% (1K open / 50K opened)

Variables to adjust:
  *** MySQL's maximum memory usage is dangerously high ***
  *** Add RAM before increasing MySQL buffer variables ***
    query_cache_size (> 64M)
    join_buffer_size (> 2.0G, or always use indexes with joins)
    table_cache (> 1800)

 :o
« Poslední změna: 27. 02. 2011, 11:27:26 od fotka »
Linux nováček - CeskeForum.com

PCnity

  • *****
  • 706
    • Zobrazit profil
    • E-mail
Re: Přesunutí zátěže z procesoru na paměť
« Odpověď #8 kdy: 27. 02. 2011, 15:00:53 »
Ze by buffery boli dangerously high... nj.. :) Asi sa mu nepaci ze server ma 8 GiB.
64 bit OS az taky zmysel pre teba nema... Kazdy proces moze zobrat 4G. Pri 8G ram aj tak asi nechces dat viac ako 4G jednej aplikacii.

IMHO tvoj performance problem suvisi so suPHP... apache suEXEC... eAccelerator tu zmysel nema.

Fakt skus nahodit nejaky lacny virtual s 4G ram na par dni a na testing tam daj PHP ako modul + mod_ruid + eAccelerator... Vykon by mal byt neporovnatelne vyssi.

fotka

  • ***
  • 216
    • Zobrazit profil
    • Linux forum
    • E-mail
Re: Přesunutí zátěže z procesoru na paměť
« Odpověď #9 kdy: 27. 02. 2011, 15:27:16 »
Co bych měl změnit aby se to sníilo ten load? Teď mam už asi 6 minut load 90.00 ( 8 ).
Problém musí být podle mě tohle: http://pastebin.com/n4HVKhXL
Jinak byl load cca 4.

/edit: ty buffery jsem dal zpět na ten 1GB

PHP 5 Handler si můžu vybrat: suphp, dso, cgi, none
Apache suEXEC mam teď on

měl bych něco změnit?
« Poslední změna: 27. 02. 2011, 15:55:26 od fotka »
Linux nováček - CeskeForum.com