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

Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,043
Tepki puanı
79
Konum
SEO
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
 
0
Onaylı Üye
Üye
Katılım
16 Eylül 2005
Mesajlar
302
Tepki puanı
0
Konum
AntaLya
skip-locking # serverda sadece 1 MySQL varsa

Bunu anlayamadım...

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

Sunucumda enaz 8 site mysql kullanıyorda...
 
Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,043
Tepki puanı
79
Konum
SEO
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.
 
0
Onaylı Üye
Üye
Katılım
16 Eylül 2005
Mesajlar
302
Tepki puanı
0
Konum
AntaLya
hımmm anladım çok saol.
 
Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,043
Tepki puanı
79
Konum
SEO
0
Onaylı Üye
Üye
Katılım
11 Mart 2008
Mesajlar
31
Tepki puanı
0
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]
 
Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,043
Tepki puanı
79
Konum
SEO
@stewie, my.cnf dosyani da buraya postalarsan sorununa bakabiliriz.
 
1
Onaylı Üye
Üye
Katılım
25 Eylül 2006
Mesajlar
5,893
Tepki puanı
88
Konum
www.odatv.com
merhaba, mysql portlarına nasıl bakabilirim, *skip-locking* için soruyorum
 
Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,043
Tepki puanı
79
Konum
SEO
merhaba, mysql portlarına nasıl bakabilirim, *skip-locking* için soruyorum

Aklima gelen ilk yontem su oldu:
ssh ile baglanip my.cnf dosyaniz icinde port kelimesin arattirin
grep -i port /etc/my.cnf
 
0
Onaylı Üye
Üye
Katılım
3 Şubat 2008
Mesajlar
24
Tepki puanı
0
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
 
0
Onaylı Üye
Üye
Katılım
20 Mart 2005
Mesajlar
245
Tepki puanı
1
Hocam 256 mb ve 380 mb lık vps ler için olanı yokmu my.cnf
 
Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,043
Tepki puanı
79
Konum
SEO
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
 
0
Onaylı Üye
Üye
Katılım
3 Şubat 2008
Mesajlar
24
Tepki puanı
0
Ramda biraz degerler değişti iyi yönde, makinayı rahatlakmak adına ne önerirsiniz şimdiden teşekkür ederim.
 
0
Onaylı Üye
Üye
Katılım
20 Mart 2005
Mesajlar
245
Tepki puanı
1
Çok teşekkürler İyinet sayende vps im baya hızlandı. Google sitemi doğrulamıyordu artık doğruluyor :) Süpersin
 
Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,043
Tepki puanı
79
Konum
SEO
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.
 
1
Onaylı Üye
Üye
Katılım
25 Eylül 2006
Mesajlar
5,893
Tepki puanı
88
Konum
www.odatv.com
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
 
0
Onaylı Üye
Üye
Katılım
3 Şubat 2008
Mesajlar
24
Tepki puanı
0
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 ?

8143memory.JPG
 
Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,043
Tepki puanı
79
Konum
SEO
Bunu baska serverlarda da gormustum.
spamd size ne kadar gerekli bilmiyorum, mysql den sonra en yuksek bellek harcayan proses.
 
Geri
Üst