Baze:
1. prva, koja se non-stop koristi, ima 300+ MB, ne verujem da prelazi 1GB ni u jednoj varijanti.
2. druga, repozitorijum za dokumente, 6GB+, pristupa se stalno ali ne baš non-stop.
3. treća, veoma mala ali se non-stop vrte extra prosti upiti po njoj. predlagao sam embeeded bazu al' mi to, za sad, nije prošlo.
Broj korisnika je, otprilike, do 1500 od kojih je nekoliko desetina non-stop na aplikaciji i radi projekt menadžement (prati šta ima novo, vrti par uber komlikovanih select upita nad najvećim tabelama). Ostali se zakače, odrade i odjave. Ili, većina startuje browser i tako stoji, pa im browser refreshuje svakih nekoliko sekundi. Ovi use-case-ovi mi nisu jasni al, ajd da pretpostavimo ovaj drugi - da su svi stalno online.
Connection pool C3P0 otvara do 120 konekcija, provereno sasvim dovoljno.
E, sad trebaju mi preporuke za podešavanje MySQL-a. Osnovne stvari znam, trebaju mi tips'n'tricks. Bitniji mi je princip razmišljanja i na šta da obratim pažnju nego same cifre:
- da l da isključim binarni log i koliko bih dobio na performansama,
- koji parametri su bitni tako da se odradi najbolja moguća sprega sa CentOS-om
- ima li neki štos koji treba znati u vezi CentOS-a ili Linux-a, an ženeral, da sa MySQL-om zajedno radi što bolje? na primer, tmp folder može da ide u ram, ako se dobro sećam? za detalje Linux-a imam lika u firmi, problem je što ne znam šta da ga pitam.
- myisam parametri, trebaju mi za virtuelne tabele (valjda?). kako da njih uparim? trenutno aplikacija dosta pravi neke JOIN-ove i sl. pa bih olabavio RAM za temporary tabele.
- kako da definišem parametre za keširanje upita_
Evo nekih mojih razmišljanja u vezi MySQL-a (my.ini):
- innodb_additional_buffer_size bih postavio na 512 MB za 4GB RAM server, 1GB za 8GB RAM server.
- broj konekcija do 150
Već ostavljao ovde tekuću verziju my.cnf-a:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
server-id=22199
innodb_flush_log_at_trx_commit=1
sync_binlog=1
log-bin=/var/lib/mysql/mysql-bin.log
expire_logs_days = 4
tmpdir=/tmp
## Requested by Xavier Fort 7/29/2011
max_allowed_packet=16M
#max_connections=250
character_set_client=utf8
#character_set_connection=utf8 #invalid entry
#character_set_database=utf8 #invalid entry
character_set_filesystem=binary
#character_set_results=utf8 #invalid entry
character_set_server=utf8
#character_set_system=utf8 #invalid entry
#collation_connection=utf8_unicode_ci #invalid entry
#collation_database=utf8_unicode_ci #invalid entry
collation_server=utf8_unicode_ci
#table_type=innodb #invalid entry
## Requested by Marko Jevtovic 8/16/2011
innodb_buffer_pool_size=512M
innodb_thread_concurrency=10
innodb_additional_mem_pool_size=4M
tmp_table_size=32M
max_connections=120
default-storage-engine=innodb
default-character-set=utf8
## Added by Eric Okumura 9/2/2011
transaction-isolation=REPEATABLE-READ