Merhaba bir DATABSE sunucum yüksek trafik darboğaz girdiğini farkettim basit temel bir config yaptım sizce ek olarak hangi şeyleri eklemeliyim
[mysqld]
local-infile=0
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# paylaşımlı hosting safe-show-database
skip-name-resolve
tmp_table_size = 256M
max_heap_table_size = 256M
table_open_cache = 3000
performance_schema = ON
key_buffer_size = 24M
innodb_buffer_pool_size = 3G
innodb_log_file_size=512M
innodb_buffer_pool_instances = 3G
query_cache_type=1
query_cache_limit=4M
query_cache_size=512M
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config di
rectory
#
!includedir /etc/my.cnf.d
Mariadb ek Ayar hakkında öneri
9
●372
- 30-05-2023, 02:00:04
- 30-05-2023, 03:15:3716 corebyberke adlı üyeden alıntı: mesajı görüntüle
32 GB ram
100 gb NVMe
Local network içerisinde dönüyor
Sürekli insert / update işlemi - 30-05-2023, 05:00:45koksalkesici adlı üyeden alıntı: mesajı görüntüle
Merhaba aşağıdaki gibi kullanın bir. Ekstra olarakta slow query aktif edin. Birkaç gün sorun yaşatan sorguları takip edin.
Slow query için aşağıdaki kodu kullanıyorum. Birkaç gün sonra sonuçları alınca kaldırın
slow_query_log = 1 slow_query_log_file =/var/lib/mysql/mysql-slow.log long_query_time = 5
[mysqld] local-infile=0 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock skip-name-resolve tmp_table_size = 512M max_heap_table_size = 512M table_open_cache = 5000 performance_schema = OFF key_buffer_size = 512M innodb_buffer_pool_size = 6G innodb_log_file_size = 1G innodb_buffer_pool_instances = 8 innodb_thread_concurrency = 0 innodb_read_io_threads = 8 innodb_write_io_threads = 8 innodb_io_capacity = 1000 max_connections = 500 max_allowed_packet = 128M wait_timeout = 180 query_cache_type = 0 query_cache_size = 0 log_warnings = 2 log-error=/var/log/mariadb/mariadb.log log_queries_not_using_indexes = 1 slow_query_log = 1 slow_query_log_file =/var/lib/mysql/mysql-slow.log long_query_time = 5 symbolic-links = 0 [mysqld_safe] log-error=/var/log/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid !includedir /etc/my.cnf.d
- 31-05-2023, 07:12:01Veritabanında hangi tablo yapısını kullanıyorsunuz? MyISAM? InnoDB? Ayrıca, query_cache kapatmalısınız. İnternette denk geldiğiniz veya önerilen her my.cnf ayarlarını kendi sunucunuzda olduğu gibi uygulamamalısınız. Her sunucu üzerindeki yük aynı değil yani başkasının kullandığı konfigürasyon sizin sunucunuza yetersiz veya fazla gelebilir. Bu arada dikkatli olmanızı ve mutlaka yedeklerinizi almanızı öneririm.
- 31-05-2023, 13:25:39Merhaba kendi sunucum değilde müşterimin yüksek trafik aldığı DATABSE sunucusu sunucu içerisinde sürekli şeklide SELECT/İNSERT/UPDATE her işlemde yapılmaktadır kendisinin yüksek trafik kontrol ettiğimizde hiçbir sıkıntı yok hatta performans göstermektedirler load 0,10,-0,25 arasında tüketmektedirEfendiBey adlı üyeden alıntı: mesajı görüntüle
- 31-05-2023, 13:55:59Anlıyorum da bu dediklerinizi değil, veritabanı tablo yapılarını soruyorum. Veritabanının boyutu nedir? Tablo yapısında MyISAM kullanıyorsa ve veritabanı da 3GB'a yakın veya ondan büyükse sürekli kitlenir ve sunucuyu yorar. InnoDB kullanıyorsa RAM miktarının %80'nini ona ayırması ve ona göre konfigüre etmesi gerekir. Ayrıca, en iyi analiz sunucu yoğun çalışırken yapılmalıdır ama normal durumlarda load dediğiniz gibiyse endişe etmenize gerek yok. Yüksek trafikte oluyorsa MySQL-Server'ın optimize edilmesi gerekiyor demektir. Yoğun saatlerde top komutu çalıştırıp göstergeyi izleyin bakalım MySQL nasıl çalışıyor. RAM ve disk tüketim miktarı ne kadar inceleyip buraya paylaşırsanız ona göre bakalım.
Şunu da belirtmekte fayda var ki, her şeyi MySQL-Server'a bağlamak olmaz. Örneğin, sitelerde MySQL-Server'ı sürekli meşgul edecek eklenti vb. varsa onlar da neden olabilir. Yanlış PHP (veya ne kullanıyorsanız) konfigürasyonları da neden olabilir. Bu duruma tek taraflı bakmamak lazım yani onu demek istiyorum. Bu arada my.cnf dosyasıyla fazla oynamamalısınız özellikle sunucu yoğun çalışırken. İşlem yapmadan önce MySQL-Server'ı durdurmanızı öneririm yani bir işlem yaptınız diyelim. Önce durdurun, sonra başlatın ki halihazırda çalışırken hata verip daha büyük risk durumu olmasın.