U skoro svakoj temi se provlaci da je pozeljno staviti tmpdir dir u RAM tj. napraviti za mysql tmpfs particiju i usmeriti tmpdir na tu particiju.
Tipa u my.cnf: tmpdir=/ccc/mysql_temp gde je /ccc/mysql_temp tmpfs particija koja se nalazi u memoriji a ne na disku.
To se cini kao veoma dobro resenje jer sve temp tabele idu u RAM umesto na HDD ako upiti imaju dosta group by/order by ili ako ima velikih blob/text polja ili jednostavno upiti su losi ili bilo sta drugo.
E sada tu mi se javljaju neke dileme koje ne mogu da pohvatam:
- Koliko max odvojiti RAM za tmpfs particiju tj. za tmpdir ako ima ukupno 4G ram-a, a koliko ako ima 10G. Pod uslovom da je server dedicated za mysql, 64 bit OS, da svi ostali kesevi/buferi mysql su podeseni da ne uzimaju vise od 2G RAM za OS sa 4G RAM odnosno 5G kod sistema ciji OS ima 10G,mysql je 5.5. Da li bi ta proporcija bila i za server sa 32G RAM-a?
- max_tmp_size/heap_size Vs. tmpfs. gde je u oba slucaja odvojen isti ram. Za prvi slucaj ako temp tabela premasi max tmp variablu kreirace se na disku, dok ako se premasi limit tmpfs particije za tmp tabele dolazi do gresaka, korupcije ili ne? Kombinacija i koriscenje i jednog i drugog mi se cini da nema smisla. Dok mi dobro resenje izgleda vise tmpdir direktorijuma 1, 2, 3. Gde je tmpdir1 vezan za tmpfs, tmpdir2 za jedan disk, tmpdir3 za drugi hdd. Pa kada se napuni tmpfs, onda se koristi tmpdir2 na HDD pa tmpdir3 i tako ukrug. Ako to uopste tako funkcionise. Pretpostavljam da kako i samo ime kaze temp tabele se cuvaju u memoriji samo dok su potrebne u toku neke interne operacije i da se nakon toga odmah brisu i oslobadja se prostor u memoriji.
-swapovanje i tmdir na tmpfs. Na par mesta sam video da je preporuka da se nikako ne gasi swappines na OS ukoliko se koristi tmpfs za tmpdir.
Moja neka generalna solucija bi bila tmpfs od 1G kod servera sa 4GB RAM odn 2GB kod servera sa 10GB (~25%), vise tmpdir od kojih je prvi u memoriji a ostali na HDD i
swappines sa default 60 (CentOS/RHEL) na nekih 10 ili 20 umesto gasenja.
Svaka druga razmisljanja ili neki izvori su dobrodosli :)
Pozdrav.
Tipa u my.cnf: tmpdir=/ccc/mysql_temp gde je /ccc/mysql_temp tmpfs particija koja se nalazi u memoriji a ne na disku.
To se cini kao veoma dobro resenje jer sve temp tabele idu u RAM umesto na HDD ako upiti imaju dosta group by/order by ili ako ima velikih blob/text polja ili jednostavno upiti su losi ili bilo sta drugo.
E sada tu mi se javljaju neke dileme koje ne mogu da pohvatam:
- Koliko max odvojiti RAM za tmpfs particiju tj. za tmpdir ako ima ukupno 4G ram-a, a koliko ako ima 10G. Pod uslovom da je server dedicated za mysql, 64 bit OS, da svi ostali kesevi/buferi mysql su podeseni da ne uzimaju vise od 2G RAM za OS sa 4G RAM odnosno 5G kod sistema ciji OS ima 10G,mysql je 5.5. Da li bi ta proporcija bila i za server sa 32G RAM-a?
- max_tmp_size/heap_size Vs. tmpfs. gde je u oba slucaja odvojen isti ram. Za prvi slucaj ako temp tabela premasi max tmp variablu kreirace se na disku, dok ako se premasi limit tmpfs particije za tmp tabele dolazi do gresaka, korupcije ili ne? Kombinacija i koriscenje i jednog i drugog mi se cini da nema smisla. Dok mi dobro resenje izgleda vise tmpdir direktorijuma 1, 2, 3. Gde je tmpdir1 vezan za tmpfs, tmpdir2 za jedan disk, tmpdir3 za drugi hdd. Pa kada se napuni tmpfs, onda se koristi tmpdir2 na HDD pa tmpdir3 i tako ukrug. Ako to uopste tako funkcionise. Pretpostavljam da kako i samo ime kaze temp tabele se cuvaju u memoriji samo dok su potrebne u toku neke interne operacije i da se nakon toga odmah brisu i oslobadja se prostor u memoriji.
-swapovanje i tmdir na tmpfs. Na par mesta sam video da je preporuka da se nikako ne gasi swappines na OS ukoliko se koristi tmpfs za tmpdir.
Moja neka generalna solucija bi bila tmpfs od 1G kod servera sa 4GB RAM odn 2GB kod servera sa 10GB (~25%), vise tmpdir od kojih je prvi u memoriji a ostali na HDD i
swappines sa default 60 (CentOS/RHEL) na nekih 10 ili 20 umesto gasenja.
Svaka druga razmisljanja ili neki izvori su dobrodosli :)
Pozdrav.