• 26-11-2022, 14:43:46
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    merhaba

    siteleri yeni sunucuya taşıdık ama eski sunucudaki performansı bir türlü yakalayamadık.

    aynı veritabanı ve aynı select sorgusu eski sunucuda ortalama 0.3 sn sürerken yeni sunucuda 4-5 saniye bekliyor.

    sorgu yaptığımız tabloda 178 bin küsür veri var. depolama motoru mysisam seçili. innodb'e çevirinde aynı sorgu 8 snlere kadar çıkıyor.

    xml ile belirli aralıklarda veri güncellemesi yapıldığı için query_cache özelliğinin önemi kalmıyor.

    sunucu özellikleri şu şekilde

    eski sunucu 8 cpu ve 20 gb ram (maria db)
    yeni sunucu 24 cpu 68 gb ram (promox ile sanallaştırma yapıldı.maria db)

    eski sunucuya root erişimimiz yok arkadaş nasıl bir optimizasyon yapmış olabilir ?


    my.cnf dosyamız

    # For advice on how to change settings please see
    # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
    
    [mysqld]
    performance-schema=0
    #
    # Remove leading # and set to the amount of RAM for the most important data
    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
    # innodb_buffer_pool_size = 128M
    #
    # Remove leading # to turn on a very important data integrity option: logging
    # changes to the binary log between backups.
    # log_bin
    #
    # Remove leading # to set options mainly useful for reporting servers.
    # The server defaults are faster for transactions and fast SELECTs.
    # Adjust sizes as needed, experiment to find the optimal values.
    # join_buffer_size = 128M
    # sort_buffer_size = 2M
    # read_rnd_buffer_size = 2M
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    
    log-error=/var/log/mysqld.log
    # pid-file=/var/run/mysqld/mysqld.pid
    innodb_buffer_pool_size=7G
    max_allowed_packet=268435456
    open_files_limit=40000
    innodb_file_per_table=1
    innodb_log_file_size=1792M
    join_buffer_size=128M
    max_heap_table_size=642M
    innodb_buffer_pool_instances=12
    tmp_table_size=642M
    key_buffer_size=128M
    max_connections=1000
    query_cache_type=1
    query_cache_size=1073741824
    bind-address=127.0.0.1
    slow_query_log=1
    long_query_time=5
    slow_query_log_file="/var/lib/mysql/slow.log"
    sort_buffer_size=2M
    read_rnd_buffer_size=2M
    read_buffer_size=2M
  • 02-12-2022, 14:46:32
    #2
    Bias08 adlı üyeden alıntı: mesajı görüntüle

    # For advice on how to change settings please see
    # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
    
    [mysqld]
    performance-schema=0
    #
    # Remove leading # and set to the amount of RAM for the most important data
    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
    # innodb_buffer_pool_size = 128M
    #
    # Remove leading # to turn on a very important data integrity option: logging
    # changes to the binary log between backups.
    # log_bin
    #
    # Remove leading # to set options mainly useful for reporting servers.
    # The server defaults are faster for transactions and fast SELECTs.
    # Adjust sizes as needed, experiment to find the optimal values.
    # join_buffer_size = 128M
    # sort_buffer_size = 2M
    # read_rnd_buffer_size = 2M
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    
    log-error=/var/log/mysqld.log
    # pid-file=/var/run/mysqld/mysqld.pid
    innodb_buffer_pool_size=7G
    max_allowed_packet=268435456
    open_files_limit=40000
    innodb_file_per_table=1
    innodb_log_file_size=1792M
    join_buffer_size=128M
    max_heap_table_size=642M
    innodb_buffer_pool_instances=12
    tmp_table_size=642M
    key_buffer_size=128M
    max_connections=1000
    query_cache_type=1
    query_cache_size=1073741824
    bind-address=127.0.0.1
    slow_query_log=1
    long_query_time=5
    slow_query_log_file="/var/lib/mysql/slow.log"
    sort_buffer_size=2M
    read_rnd_buffer_size=2M
    read_buffer_size=2M
    Eski sunucuyla yeni sunucu my.cnf ayarları olmaz çünkü epey yükseltmişsiniz dolayısıyla ona göre konfigüre etmelisiniz. Mesela veritabanındaki tablo yapıları InnoDB ise, innodb_buffer_pool_size=58G olmalıdır çünkü InnoDB çok fazla RAM kullanımına (%80) ihtiyaç duyar. Böyle yaparsanız MySQL daha hızlı çalışır. Paylaştığınız my.cnf yapılandırmanızda gereksiz ve hatalı veya fazlalık değerler de var. Bu yapılandırmayı yaparken dikkatli olmanızı ve kesinlikle öncesinde yedek almanızı tavsiye ederim.