• 30-05-2023, 02:00:04
    #1
    Platin üye
    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
  • 30-05-2023, 02:15:28
    #2
    Merhaba, Sunucu özelikleriniz hakkında bilgi verir misiniz?
  • 30-05-2023, 03:15:37
    #3
    Platin üye
    byberke adlı üyeden alıntı: mesajı görüntüle
    Merhaba, Sunucu özelikleriniz hakkında bilgi verir misiniz?
    16 core
    32 GB ram
    100 gb NVMe
    Local network içerisinde dönüyor
    Sürekli insert / update işlemi
  • 30-05-2023, 04:42:33
    #4
    Sunucu donanım limitlerinize göre değerlendirirsek, query cache limit ve size çok yüksek, innodb buffer pool size çok düşük. Diğer buffer limitleri eklenmemiş. Error handling değişkenleri, max conn limitleri, open files vb birçok değişken ve değeri yazılmamış
  • 30-05-2023, 04:44:43
    #5
    Query cache iyi bir seçim ancak redis kullanımını özellikle öneririm. Yoğun crud işlemi varsa redis en büyük yardımcınız olacaktır
  • 30-05-2023, 05:00:45
    #6
    koksalkesici adlı üyeden alıntı: mesajı görüntüle
    16 core
    32 GB ram
    100 gb NVMe
    Local network içerisinde dönüyor
    Sürekli insert / update işlemi

    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:01
    #7
    Veritabanı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:39
    #8
    Platin üye
    EfendiBey adlı üyeden alıntı: mesajı görüntüle
    Veritabanı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.
    Merhaba 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üketmektedir
  • 31-05-2023, 13:55:59
    #9
    Anlı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.