merhaba, söylediğiniz sorunun bir çok sebebi olaibilir. problem oluştuğu zaman bir "show full processlist" komutunun çıktısından sorgular nerde takılıyor kontrol edebilirsiniz. ayrıca slow query time ı 3 ya da 5 saniyeye çekip yavaş çalışan sorguları tam olarak tespit edip. ona göre önlem alma yoluna gidebilirsiniz. bir de genel log u açık tutmak production sistemler için tavsiye edilen bir durum değil.
log = /var/log/mysql/mysql.log #mysql islem raporlari satırını commentlemeniz eğer özel bir amacınız yoksa tavsiye edilir. kolay gelsin. 2010/1/31 Bahattin ARICI <[email protected]>: > Merhaba > Veri Tabanı sunucusu 1 gün sonra çok fazla işlemci kullanmaya başlıyor. > Kullanıcılar işlemleri yaparken 5-10 sn takılı kalıyorlar. Fakat makineyi > reboot yaptığımızda herşey normale dönüyor. > > IBM x226 2 x Xeon 3.0Ghz 2mb cache 800mhz fsb (ht ile 4 çekirdek toplam) + > 6GB Ram DDR2 400 + 74GB SCSI > 2Mbit Frame Relay Hat > MySQL Servisine ip ile bağlantı yapılıyor. > Sunucu üzerinde sadece mysql servisi çalışıyor. > > Tabloların %90'ı innodb yapısı üzerine kurulu > 370mb civarı innodb index büyüklüğü > 250mb civarı innodb veri büyüklüğü > toplam 320mb data > toplam 430mb index boyutu > > 150 civarı şube bağlantısı mevcut. > Yerel ile birlikte günde en yüksek mysql bağlantı sayısı 160 civarı oluyor. > > > Uygulama gereği her bağlantı 5sn'de bir select sorgusu yapıyor. > Bunun dışında kullanıcılar insert, update ve delete işlemleri > gerçekleştiriyor. > > show status; > show variables; > > değerlerimde şu şekilde; > table_cache 512 > Open_files 168 > Open_tables 217 > Key_reads 9323 > Key_read_request 13127722 > Key_writes 84812 > Key_write_request 195527 > Key_buffer_size 268435456 > Threads_cached 12 > Threads_connected 112 > Threads_created 124 > Threads_running 61 > Created_tmp_disk_tables 0 > Created_tmp_files 21 > Created_tmp_tables 11 > > InnoDB ayarlarını gerekliyse daha sonra yollayabilirim. > > my.cnf içeriği > [client] > port = 3306 > socket = /var/run/mysqld/mysqld.sock > > [mysqld_safe] > socket = /var/run/mysqld/mysqld.sock > nice = 0 > > [mysqld] > user = mysql > pid-file = /var/run/mysqld/mysqld.pid > socket = /var/run/mysqld/mysqld.sock > port = 3306 > basedir = /usr > datadir = /var/lib/mysql > interactive_timeout = 300 #sleep ile uyuyan mysql > sorgularini bu sure(sn) sonunda bitirir. wait_timeout ile iliskili > #innodb_data_file_path = ibdata1:256M:autoextend > innodb_additional_mem_pool_size = 96M > innodb_thread_concurrency = 4 #islemcilere verilen is > parcaciklari. cpux2 olark hesaplanir. thread_concurrency baglantili > olabilir. > innodb_buffer_pool_size = 3192M #innodb genel bellek havuzu. > rame arti 1024 olarak tesir eder. > innodb_flush_method = O_DIRECT > innodb_log_file_size = 256M > innodb_log_buffer_size = 8M > innodb_flush_log_at_trx_commit = 1 #log dosyasina guvenli > yazim yapmak icin. > innodb_lock_wait_timeout = 200 #Saniye > cinsinden.wait_timeout ile baglantili olabilir. > join_buffer_size = 1M > language = /usr/share/mysql/english > log = /var/log/mysql/mysql.log #mysql islem raporlari > log_slow_queries = /var/log/mysql/mysql-slow.log #yavas sorgular icin > long_query_time = 10 #yavas sorgular icin 10.seviye > ayarlanir. > log-queries-not-using-indexes #yavas sorgular icin indx > kullanmayanlarin belirlenmesi icin kullanilir. > log_bin = /var/log/mysql/mysql-bin.log #replikasyon islemleri icin > binary_log kullanilir. > # bind-address = 127.0.0.1 > key_buffer = 256M #myisam index dosyalari icindir. > max_allowed_packet = 16M > myisam-recover = BACKUP > max_connections = 500 #baglanan kullanici sayisi. > max_heap_table_size = 128M #veriler disk uzerinde > degilde ramde onbelleklensin. tmp_table_size ile alakali > open_files_limit = 2501 #testlerdeki acik dosya limit > x2-x3 arasi olmali. normalde 206 cikti bizde. fakat bunu otomatik > arttirabiliyor. > record_buffer = 1M > read_buffer_size = 1M > read_rnd_buffer_size = 1M > skip-bdb > skip-external-locking > sort_buffer_size = 3M #siralama islemleri icin ayrilan > bellek > table_cache = 512 #acilacak tablo sayisi. her > sayi 1 mb temsil eder. Configured Max Memory Limit ve Configured Max > Per-thread Buffers yukseltir. > thread_concurrency = 4 #islemci sayisi x2 olarak > gosteriliyor. ayni anda yapacagi islemleri gosterir gibi bir bilgi buldum. > tmpdir = /tmp > thread_stack = 128K > thread_cache_size = 300 #mysql baglantilar icin thread > (iplik) olusturur. eger show status like da thread_created surekli artarsa > burayi yukselt. su anda 126 civari. > tmp_table_size = 128M #veriler disk uzerinde degilde > ramde onbelleklensin. max_heap_table_size ile alakali > query_cache_limit = 8M #sorgular icin ayrilan bellek > miktari > query_cache_size = 16M #sorgular icin ayrilan bellek > miktari show status ta qcache_free_memory ye gore ayarlama cekilebilir. > expire_logs_days = 10 > max_binlog_size = 100M > #binlog_do_db = include_database_name > #binlog_ignore_db = include_database_name > # chroot = /var/lib/mysql/ > # ssl-ca=/etc/mysql/cacert.pem > # ssl-cert=/etc/mysql/server-cert.pem > # ssl-key=/etc/mysql/server-key.pem > wait_timeout = 200 #sleep ile uyuyan mysql > sorgularini bu sure(sn) sonunda bitirir. interactive_timeout ile iliskili > > # > ---------------------------------------------------------------------------------------------------------------------------------- > # BU 2 SATIR ARASI REPLIAKSYON ICIN > server-id = 1 #replikasyon gibi islemlerde ilk > sunucu oldugunu gostermek icin kullanilir. > log_slave_updates > log_bin_index = /var/log/mysql/log-bin.index > log_error = /var/log/mysql/error.log > relay_log = /var/log/mysql/relay.log > relay_log_info_file = /var/log/mysql/relay-log.info > relay_log_index = /var/log/mysql/relay-log.index > auto_increment_increment= 3 > auto_increment_offset = 1 > # master_host = 10.0.1.2 > # master_user = replication > # master_password = xxxx > # replicate_do_db = xxxx > binlog_do_db = xxxx > # > ------------------------------------------------------------------------------------------------------------------------------------ > > [mysqldump] > quick > quote-names > max_allowed_packet = 16M > > [mysql] > #no-auto-rehash # faster start of mysql but no tab completition > > [isamchk] > key_buffer = 512M > join_buffer_size = 1M > sort_buffer_size = 3M > record_buffer = 1M > read_buffer_size = 1M > read_rnd_buffer_size = 1M > > # [MYSQL_CLUSTER] > # ndb-connectstring=127.0.0.1 > !includedir /etc/mysql/conf.d/ > > > > _______________________________________________ > Linux-sunucu E-Posta Listesi > [email protected] > > Liste kurallarını http://liste.linux.org.tr/kurallar.php bağlantısından > okuyabilirsiniz; > > Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen > e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1 > dakika içinde üyeliğinizi sonlandırabilirsiniz. > http://liste.linux.org.tr/mailman/listinfo/linux-sunucu > > -- Serdar Güler _______________________________________________ Linux-sunucu E-Posta Listesi [email protected] Liste kurallarını http://liste.linux.org.tr/kurallar.php bağlantısından okuyabilirsiniz; Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1 dakika içinde üyeliğinizi sonlandırabilirsiniz. http://liste.linux.org.tr/mailman/listinfo/linux-sunucu
