• 18-11-2016, 17:25:07
    #1
    Merhaba, yaklaşık 25.000 tablolu bir veriye sahibim ve her saniye veriye bir şeyler işleniyor. Doğal olarak cpu kullanımı arttı ve mysqld cpu %80 oranlarında kullanıyor buda yavaşlamaya neden oluyor. Cpu kullanımını nasıl düşürebilirim?

    My cnf dosyam;

    Alıntı
    [mysql]
    default-storage-engine=innodb
    default-table-type=innodb
    performance_schema=off
    skip-networking
    innodb_file_per_table=1
    tmpdir=/tmp
    max_connections=100
    max_user_connections=100
    explicit_defaults_for_timestamp = 1
    key_buffer_size=6GB
    myisam_sort_buffer_size=192M
    join_buffer_size=10M
    read_buffer_size=128K
    sort_buffer_size=128K
    table_open_cache=256
    thread_cache_size=16K
    table_definition_cache=4K
    open_files_limit=3072
    wait_timeout=60
    connect_timeout=60
    tmp_table_size=200M
    max_heap_table_size=200M
    max_allowed_packet=268435456
    query_cache_limit=148M
    query_cache_size=0
    query_cache_type=0
    interactive_timeout=60
    max_connect_errors=15
    local-infile=0
    low_priority_updates=1
    concurrent_insert=ALWAYS
    slow_query_log = 1
    slow_query_log_file = /var/log/mysql/slow.log
    long_query_time = 5
    innodb_buffer_pool_size = 16G
    innodb_buffer_pool_instances = 1
    innodb_fast_shutdown=0
    innodb_log_file_size
    innodb_log_buffer_size
    innodb_flush_method=O_DIRECT
    Innodb_read_io_threads = 8
    innodb_write_io_threads = 8
    innodb_thread_concurrency = 0

    [isamchk]
    key_buffer=64M
    sort_buffer_size=2M
    read_buffer=2M
    write_buffer=2M

    [myisamchk]
    tmpdir=/tmp
    key_buffer=64M
    sort_buffer=2M
    read_buffer=2M
    write_buffer=2M
  • 18-11-2016, 17:33:23
    #2
    Kullanıcılar tarafından güncellenmeyen veriler için cache kurabilirsiniz.

    Böylelikle bir kere sorgu çalışacak cache oluşacak ve tüm ziyaretçiler o cacheyi göreceklerdir. Her ziyaretçi tekrar tekrar aynı veriyi çekmeye çalışıp veritabanınızı meşgul etmemiş olacak ve böylelikle cpu kullanımı da düşecektir.
  • 18-11-2016, 17:35:41
    #3
    Aynen cache'e bağlamak uygun bir çözüm yolu.
  • 18-11-2016, 17:39:22
    #4
    Profesyonel destek için ulaşabilirsiniz.

    Ref Link :

    https://www.r10.net/server-optimizasy...n-hizmeti.html
  • 06-04-2017, 13:06:50
    #5
    Kaç GB ram bellek yüklü sunucunda.
    Sanırım nette bulduğun bir mysql configrasyonu kopyalamışsın bu parametrelerin çogu ile işin yok.

    SIKINTILI PARAMETRELERİN
    key_buffer_size=6GB

    Varsayılan mysql engine olarak innodb yapmışsın ve sanırım tabloların innodb
    ama myisam engin parametresini (key_buffer_size=6GB) yapmışsın.
    Bunu 300M yap.

    innodb_buffer_pool_size = 16G
    innodb_buffer_pool_size içinde RAM BELEĞİN X 0.75 olarak ayarla
    sunucundanki Ram Miktarı 16GB ise 16*0.75= 12G ayarla.
    innodb_buffer_pool_size = 12G


    innodb_buffer_pool_instances = 12 ayarla.

    join_buffer_size=10M buda yine myisam parametresi ve session bazlı ram tüketir.
    Bunuda 2M yapsan yeterli hatta 1M yap.

    Daha detaylı bilgi bu linki oku:
    https://www.r10.net/server-optimizasy...mizasyonu.html
    • cculha
    cculha bunu beğendi.
    1 kişi bunu beğendi.