Fórum Root.cz
		Hlavní témata => Server => Téma založeno: fotka  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?
 
 
 [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.
- 
				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.
			
- 
				Doporucujem si precitat material s nazvom "Mysql tunning" :)
			
- 
				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 (http://www.howtoforge.com/tuning-mysql-performance-with-mysqltuner) 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
 
- 
				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?
- 
				Díky PCnity:
 
 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...
 
 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
 
 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 (http://i55.tinypic.com/30dede1.png) 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.
- 
				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
- 
				[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
 
 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
 
- 
				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.
- 
				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?