Belleğe göre MySQL my.cnf ayarları - kolay hazır MySQL ayarları

iyinet

Yönetici
Administratör
Katılım
2 Eyl 2002
Mesajlar
5,020
Beğeniler
47
Konum
Gaziantep
#1
MySQL makinanıza kurulduğunda performans ve bellek ayarları yapılmamış şekilde kurulur.

MySQL in performansı birkaç basit ayar ekleyerek belleğinizin boyu doğrultusunda arttırılabilir.

Bu hazır kolay ayarları gönül rahatlığı ile MySQL iniz için kullanabilirsiniz.

Aşağıdaki ayarları linux de my.cnf (/etc/my.cnf) dosyasında [mysqld] bölümü altına ekleyin, eğer eklediğiniz ayar zaten varsa değiştirin. Aynı ayarın tekrar etmemesine dikkat edin.

İşlemlere başlamadan önce my.cnf dosyanızın bir yedeğini almayı unutmayın!

Ayarlarınızı optimize etmek için zaman zaman mysql performans raporu almayı unutmayın.

Aşağıdaki ayarların devreye girebilmesi için ayarları tamamalyıp my.nf dosyanızı kaydetmenizin ardından service mysql restart yada service mysqld restart komutunu çalıştırınız.

256Mb-512M arasında belleğe sahip serverlar (VPS ler) için:
Kod:
skip-locking             # serverda sadece 1 MySQL varsa
skip-name-resolve
max_connections = 300      # cok yogun sitelerde bu deger arttirilabilir
thread_cache_size = 128
key_buffer = 32M
query_cache_type = 1
query_cache_size = 16M
query_cache_limit = 4M
table_cache = 2000           # cok fazla tablolu veritabanlarinda bu deger arttirilabilir
low_priority_updates = 1
### innodb varsa asagidaki ayarlari aciniz
#innodb_buffer_pool_size=16M
#innodb_additional_mem_pool_size=8M
#innodb_thread_concurrency=8
#innodb_flush_method=O_DIRECT
512Mb-2Gb arasında belleğe sahip serverlar için:
Kod:
skip-locking             # serverda sadece 1 MySQL varsa
skip-name-resolve
max_connections = 500      # cok yogun sitelerde bu deger arttirilabilir
thread_cache_size = 128
key_buffer = 64M  
query_cache_type = 1
query_cache_size = 32M
query_cache_limit = 4M
table_cache = 2000           # cok fazla tablolu veritabanlarinda bu deger arttirilabilir
low_priority_updates = 1
### innodb varsa asagidaki ayarlari aciniz
#innodb_buffer_pool_size=64M
#innodb_additional_mem_pool_size=32M
#innodb_thread_concurrency=8
#innodb_flush_method=O_DIRECT
2Gb-4Gb arasında belleğe sahip serverlar için:
Kod:
skip-locking             # serverda sadece 1 MySQL varsa
skip-name-resolve
max_connections = 500      # cok yogun sitelerde bu deger arttirilabilir
thread_cache_size = 128
key_buffer = 128M  
query_cache_type = 1
query_cache_size = 32M
query_cache_limit = 4M
table_cache = 2000           # cok fazla tablolu veritabanlarinda bu deger arttirilabilir
low_priority_updates = 1
### innodb varsa asagidaki ayarlari aciniz
#innodb_buffer_pool_size=256M
#innodb_additional_mem_pool_size=64M
#innodb_thread_concurrency=8
#innodb_flush_method=O_DIRECT
4Gb+ belleğe sahip serverlar için:
Kod:
skip-locking             # serverda sadece 1 MySQL varsa
skip-name-resolve
max_connections = 500      # cok yogun sitelerde bu deger arttirilabilir
thread_cache_size = 128
key_buffer = 256M  
query_cache_type = 1
query_cache_size = 64M
query_cache_limit = 4M
table_cache = 2000           # cok fazla tablolu veritabanlarinda bu deger arttirilabilir
low_priority_updates = 1
### innodb varsa asagidaki ayarlari aciniz
#innodb_buffer_pool_size=384M  #Innodb kullanimi cok ise 384M, 1024M e kadar arttirilabilir
#innodb_additional_mem_pool_size=96M
#innodb_thread_concurrency=8
#innodb_flush_method=O_DIRECT
 

iyinet

Yönetici
Administratör
Katılım
2 Eyl 2002
Mesajlar
5,020
Beğeniler
47
Konum
Gaziantep
#3
Bunu anlayamadım...

Sunucuda tek site mysql kullanıyorsa bunumu ekliyeceğiz...?

Sunucumda enaz 8 site mysql kullanıyorda...
Site sayisi onemli degil, makinada ayri ayri calisan mysql kurulum sayisi.
Ornegin 1 mysql port 3306 da calisirken digeri de 3307 numarali porttan calisiyorsa skip-locking kullanamazsiniz.
 

iyinet

Yönetici
Administratör
Katılım
2 Eyl 2002
Mesajlar
5,020
Beğeniler
47
Konum
Gaziantep
#6

stewie

Şen Üye
Katılım
11 Mar 2008
Mesajlar
31
Beğeniler
0
#7
PHP:
skip-locking             # serverda sadece 1 MySQL varsa
skip-name-resolve
max_connections = 500      # cok yogun sitelerde bu deger arttirilabilir
thread_cache_size = 128
key_buffer = 64M  
query_cache_type = 1
query_cache_size = 32M
query_cache_limit = 4M
table_cache = 2000           # cok fazla tablolu veritabanlarinda bu deger arttirilabilir
low_priority_updates = 1
### innodb varsa asagidaki ayarlari aciniz
#innodb_buffer_pool_size=64M
#innodb_additional_mem_pool_size=32M
#innodb_thread_concurrency=8
#innodb_flush_method=O_DIRECT
yukardeki kodu my.cnf ye uyguladım service mysql restart edince aşağıdaki hatayı veriyor iyinet yardımcı olabilirmisin
PHP:
[root@74 etc]# service mysql restart
error: Found option without preceding group in config file: /etc/my.cnf at line: 1
Fatal error in defaults handling. Program aborted
error: Found option without preceding group in config file: /etc/my.cnf at line: 1
Fatal error in defaults handling. Program aborted
Shutting down MySQL...                                     [  OK  ]
error: Found option without preceding group in config file: /etc/my.cnf at line: 1
Fatal error in defaults handling. Program aborted
Starting MySQL...................................          [FAILED]
 
Katılım
3 Şub 2008
Mesajlar
24
Beğeniler
0
#11
Aşırı ram kulllanımı

Serverda ram Kullanımı tavan yapmıs durumda sunucuya reset atıyorum 2 tane 1 k lık site var sunucuda suspend atttım 1-2 saat içinde değerler yine değişmedi nasıl bir yol izlemem gerekiyor ram ın çogunu mysql yiyor hitli sitelerin scripti vbulletin altta my.cnf dosyamın verilerini yazıyorum yardımcı olursan sevinirim iyinet teşekkür ederim şimdiden.


PHP:
[mysqld]
skip-locking
skip-innodb
skip-name-resolve
max_connections = 300
thread_cache_size = 128
key_buffer = 185M
table_cache = 512  
query_cache_type = 1
query_cache_size = 32M
query_cache_limit = 4M
table_cache = 2000
low_priority_updates = 1
wait_timeout=3600
max_allowed_packet=64M

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

[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/lib/mysql/mysql.pid
open_files_limit=8192

[mysqldump]
quick
max_allowed_packet=16M

[mysql]
no-auto-rehash
#safe-updates

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

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

[mysqlhotcopy]
interactive-timeout
Vps Özellikleri

Intel Core2duo 2.4ghz
750 Mb Ram
 

iyinet

Yönetici
Administratör
Katılım
2 Eyl 2002
Mesajlar
5,020
Beğeniler
47
Konum
Gaziantep
#14
Serverda ram Kullanımı tavan yapmıs durumda sunucuya reset atıyorum 2 tane 1 k lık site var sunucuda suspend atttım 1-2 saat içinde değerler yine değişmedi nasıl bir yol izlemem gerekiyor ram ın çogunu mysql yiyor hitli sitelerin scripti vbulletin altta my.cnf dosyamın verilerini yazıyorum yardımcı olursan sevinirim iyinet teşekkür ederim şimdiden.

Vps Özellikleri

Intel Core2duo 2.4ghz
750 Mb Ram
Ram tamamen kullanilip SWAP (hard disk) alani kullanilmaya baslarsa, yapilan tum optimizasyonlar bosa gider.
Serverda performans icin en onemli konulrdan birisi mumkun oldugunca SWAP kullanimini onlemektir. SWAP arasira olabilir, ama yetersiz bellek nedeni ile devamli SWAP kullaniliyorsa, o zaman server hem cok yorulur, hem cok isinir, hemde cok yavaslar.

Az bellek kullanacak sekilde degistirdim:

PHP:
[mysqld]
skip-locking
skip-innodb
skip-name-resolve
max_connections = 300
thread_cache_size = 128
key_buffer = 64M
query_cache_type = 1
query_cache_size = 16M
query_cache_limit = 4M
table_cache = 2000
low_priority_updates = 1
max_allowed_packet=64M

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

[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/lib/mysql/mysql.pid
open_files_limit=8192

[mysqldump]
quick
max_allowed_packet=16M

[mysql]
no-auto-rehash
#safe-updates

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

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

[mysqlhotcopy]
interactive-timeout
 
Katılım
3 Şub 2008
Mesajlar
24
Beğeniler
0
#15
Ramda biraz degerler değişti iyi yönde, makinayı rahatlakmak adına ne önerirsiniz şimdiden teşekkür ederim.
 

zeusmaster

Profesyonel Üye
Katılım
21 Mar 2005
Mesajlar
245
Beğeniler
1
#16
Çok teşekkürler İyinet sayende vps im baya hızlandı. Google sitemi doğrulamıyordu artık doğruluyor :) Süpersin
 

iyinet

Yönetici
Administratör
Katılım
2 Eyl 2002
Mesajlar
5,020
Beğeniler
47
Konum
Gaziantep
#17
Ramda biraz degerler değişti iyi yönde, makinayı rahatlakmak adına ne önerirsiniz şimdiden teşekkür ederim.
ssh den makinaya root ile girin.
top komutunu calistirin (top yazip enter a basin)
Ardindan buyuk M (Shift+m) e basin

Boylece top en cok bellek kullanan prosesleri en ustte gosterecektir.

Bu prosesleri bulup gereksiz ise kapatin.
 
Katılım
26 Eyl 2006
Mesajlar
5,903
Beğeniler
96
Konum
www.odatv.com
#18
merhaba iyinet,sshta, en yüksek memoryi"5.9" ile tomcat kullanıyor ama cpu"0.0" , linuz fedora
----------

birde swap normalmi,
Swap: 2096472k total, 18576k used, 2077896k free, 764480k cached
 
Katılım
3 Şub 2008
Mesajlar
24
Beğeniler
0
#19
ssh den makinaya root ile girin.
top komutunu calistirin (top yazip enter a basin)
Ardindan buyuk M (Shift+m) e basin

Boylece top en cok bellek kullanan prosesleri en ustte gosterecektir.

Bu prosesleri bulup gereksiz ise kapatin.

Merhaba;
Şöyle bir görüntü oluştu bu değerler normal mi acaba ?

 

iyinet

Yönetici
Administratör
Katılım
2 Eyl 2002
Mesajlar
5,020
Beğeniler
47
Konum
Gaziantep
#20
Bunu baska serverlarda da gormustum.
spamd size ne kadar gerekli bilmiyorum, mysql den sonra en yuksek bellek harcayan proses.
 

Bu konuyu okuyanlar (Üyeler: 1, Misafirler: 2)

Üst