İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Mysql optimizasyon (my.cnf) yardim

ZiRVeDeKiLeR

0
İyinet Üyesi
Katılım
9 Şubat 2006
Mesajlar
516
Reaction score
0
uzun süredir serverimde sorunlar yasiyorum linux konusunda bilgim hemen hemen yok gibi birsey ama bi sekilde serverimi yoluna sokmam lazim benim asil sorunum sasinirim apache2 ve httpd2-prefork denen bas belasi ile asiri bir cpu kullanimi söz konusu ama serverdeki sitelerin hemen hemen tamami php ve phpmyadmin tabanli calistigi icin bu konuda sanirim önemli.

öncelikle asagidaki linkte arkadasin yazdigi gibi oradakileri copyalayip yapistirdim ama gercekten benim icin uygun konfigirasyon bumu degilmi hic bir fikrim yok.

http://forum.iyinet.com/showthread.php?p=208353#post208353


Sistemde bildigim özelliklere gelince

P4 3400 MHz
2048 MB RAM

SuSE 9.3 - Confixx

MySQL 4.0.21


Forumlarda günlük yaklasik 7000-10000 civari post atiliyor.

selamlar...
 

ZiRVeDeKiLeR

0
İyinet Üyesi
Katılım
9 Şubat 2006
Mesajlar
516
Reaction score
0
Demekki o ayarlar bana uygun degilmis :(


Kod:
SQL-DATABASE ERROR

Database error in WoltLab Burning Board (): Link-ID == false, connect failed 
mysql error: User webxx has already more than 'max_user_connections' active connections 
mysql error number: 1203 
mysql version: unknown 
php version: 4.3.8 
Date: 19.06.2006 @ 20:10 
Script: / 
Referer:
 

ZiRVeDeKiLeR

0
İyinet Üyesi
Katılım
9 Şubat 2006
Mesajlar
516
Reaction score
0
Asagidaki ise eski ayarlar sanirim bunlarda satandart ayarlar degildi baska bir ayarlamisti. Elimde benzer bir server daha var oradan orjinal dosyalari versem ona göre degerleri degissek dahami uygun olurdu?

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-innodb
skip-locking
safe-show-database
max_connections = 200
max_user_connections = 40
key_buffer = 16M
myisam_sort_buffer_size = 64M
join_buffer_size = 1M
read_buffer_size = 1M
sort_buffer_size = 2M
table_cache = 1500
thread_cache_size = 256
wait_timeout = 180
connect_timeout = 10
tmp_table_size = 32M
max_allowed_packet = 32M
max_connect_errors = 10
query_cache_limit = 1M
query_cache_size = 16M
query_cache_type = 1
query_prealloc_size = 16384
query_alloc_block_size = 16384

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

[mysqld_safe]
open_files_limit = 8192
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
log-slow-queries=/var/log/mysql-slow

[mysqldump]
quick
max_allowed_packet = 16M

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




anlamadigim burada max connect 200 yeni uygulamada 500 nasil bu hatayi verdi?
 

asoza

0
İyinet Üyesi
Katılım
7 Ocak 2006
Mesajlar
288
Reaction score
0
key_buffer değerini mysql nin internet sitesinden araştırın bir.
ram / 4 kadar bir değer öneriliyor.
Sizin için 512M uygun görünüyor.
Ayrıca notlarım arasında
MySQL RAM kullanımı = key_buffer + max_connections * (join_buffer + record_buffer + sort_buffer + thread_stack + tmp_table_size)
gibi bir formül de var.
Kesin olan sunucu mutluluğunuzun konfigürasyonunza göre ayar yapmanızdan geçtiği.
 

ZiRVeDeKiLeR

0
İyinet Üyesi
Katılım
9 Şubat 2006
Mesajlar
516
Reaction score
0
asoza' Alıntı:
key_buffer değerini mysql nin internet sitesinden araştırın bir.
ram / 4 kadar bir değer öneriliyor.
Sizin için 512M uygun görünüyor.
Ayrıca notlarım arasında
MySQL RAM kullanımı = key_buffer + max_connections * (join_buffer + record_buffer + sort_buffer + thread_stack + tmp_table_size)
gibi bir formül de var.
Kesin olan sunucu mutluluğunuzun konfigürasyonunza göre ayar yapmanızdan geçtiği.


Evet ayni bölümde iyinet adminininde bu konuda tavsiyesi vardi su an o konudaki ayarlari oldugu gibi aldim kodlari birde sizler kontrol edip server icin uygun olup olmadigi konusunda görüs bildirirseniz memnun olurum...

Kod:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
pid-file=/var/run/mysqld/mysqld.pid
skip-locking
skip-innodb
key_buffer = 512M
table_cache = 512
max_connections = 500
query-cache-type = 1
query-cache-size = 32M
max_allowed_packet=64M
wait_timeout=3600

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

[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
 

asoza

0
İyinet Üyesi
Katılım
7 Ocak 2006
Mesajlar
288
Reaction score
0
Benim görüşüm my.cnf ile oynayarak değilde, değerleri mysql nin kendisine set ettirmenizin doğru olacağı yönünde.
Yine konuyla ilgili mysql nin sayfasındaki mysql versiyonunuza uygun dökümanları öneririm.
wait_timeout değeri 3600 yerine 30 gibi bir süre bence daha uygun ve verimli. 3600 çok uzun bir süre.
 

ZiRVeDeKiLeR

0
İyinet Üyesi
Katılım
9 Şubat 2006
Mesajlar
516
Reaction score
0
asoza' Alıntı:
Benim görüşüm my.cnf ile oynayarak değilde, değerleri mysql nin kendisine set ettirmenizin doğru olacağı yönünde.
Yine konuyla ilgili mysql nin sayfasındaki mysql versiyonunuza uygun dökümanları öneririm.
wait_timeout değeri 3600 yerine 30 gibi bir süre bence daha uygun ve verimli. 3600 çok uzun bir süre.


mysql nin kendisine set ettirmenizin derken detayli bilgi vermeniz mümkün fazla anlamiyorum.
 

asoza

0
İyinet Üyesi
Katılım
7 Ocak 2006
Mesajlar
288
Reaction score
0
Kusura bakmayın, genelde yeni mesajlara bakarım ama gözümden kaçmış.
MySQL nin kendi sitesini ısrarla önermemin bir çok sebebi var.
Gerçekten bilgi ve tecrübeye göre verilmiş yanıtlar olmakla birlikte o mesajdan bu mesaja gibi hiç bir süzgeçten geçirmeden aktarılan değerler de var.
Bu durumu kendi sitesinden teyid etmeniz, ilk kaynağından incelemenizin yararına inanıyorum.
MySQL set işlemi gayet kolay bir uygulama. MySQL ye bağlanıp komut satırına set yazdığınızda zaten sizden değerleri beklemeye başlayacaktır.
Bunun çeşitli kullanımına ait dökümanları kendi sitesinden edinebilirsiniz.
Bunu yaparken sunucunuzdaki versiyona uygun dökümanlara baktığınızdan emin olun.
http://dev.mysql.com/doc/refman/4.1/en/set-option.html
örnek adresi 5 versiyona kadarkileri kapsar. Orada set syntax ını ve kullanımını inceleyebilirsiniz.
 

iyinet

Root
Admin
Hosting Firması
Katılım
2 Eylül 2002
Mesajlar
5,028
Reaction score
66
Konum
Sakarya
asoza' Alıntı:
Benim görüşüm my.cnf ile oynayarak değilde, değerleri mysql nin kendisine set ettirmenizin doğru olacağı yönünde.
Yine konuyla ilgili mysql nin sayfasındaki mysql versiyonunuza uygun dökümanları öneririm.
wait_timeout değeri 3600 yerine 30 gibi bir süre bence daha uygun ve verimli. 3600 çok uzun bir süre.

Zirvedekiler, benim mysql optimizasyon onerimi kopyalarken bazi notlari cikartmis, orijinali asagidadir.
Notta da belirtildigi gibi, 3600 mysqlhotcopy icin gerekli bir ayardir, mysqlhotcopy kullanilmiyor ise bunu koymak opsiyoneldir.


[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
pid-file=/var/run/mysqld/mysqld.pid
skip-locking # 1 mysql varsa
skip-innodb # innodb kullanilmiyorsa
key_buffer = 384M # 1Gb bellek icin 384M, 512Mb icin 192M
table_cache = 512
max_connections = 500
query-cache-type = 1 # query cache mysql i hizlandirir, 1=acik
query-cache-size = 32M # kullanilacak query cache miktari
max_allowed_packet=64M # mysqlhotcopy icin
wait_timeout=3600 # mysqlhotcopy icin


Bu aklima, kulaktan kulaga oyununu getirdi.
10. kullanici bu onerileri kopyaladiginda su sekilde kusa donmus olabilir :)

[mysqld]

Kolay gelsin...
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst