Site chạy bị full CPU do mysql

Discussion in 'Hỏi Đáp Kỹ Thuật' started by Le Hieu, Jun 15, 2020.

Tags:
  1. Dang

    Dang Bang Chúng

    @Le Hieu thử kiểm tra lại lỗi có phải do bots vào hay không, mình cũng ít khi chặn bots - cũng chưa bị crawl sập (chắc do cùi mía). Mình không nghĩ lỗi do bots đâu, lỗi có thể do code update sản phẩm hoặc plugin => bạn thử chia nhỏ mỗi lần update 1 ít sản phẩm xem có bị tình trạng full nữa không!
     
    Le Hieu likes this.
  2. Le Hieu

    Le Hieu Sơ Nhập Giang Hồ

    Vâng để e theo dõi thêm xem sao ạ.
     
  3. console

    console Bang Chúng

    Woo phải customize lại, vứt hết mấy plugin nặng đi, xài hook viết lại hết cho nhẹ template. Tải plugin show slow queries rồi ìndex lại
    Làm theo từng bước vậy là ổn ah.
    K biết server này bác chạy mấy site woo. Nếu 1 thì quá hao resource
     
    Le Hieu likes this.
  4. Trí Mén

    Trí Mén Moderator Staff Member

    Thấy server xài ít ram , thớt đã optimize/set cache cho mysql chưa
     
    Le Hieu likes this.
  5. Le Hieu

    Le Hieu Sơ Nhập Giang Hồ

    Site e cài theme Flatsome plugi
    Hix hiện tại e đang chỉ chạy 1 site có khoảng 50k sản phẩm thường k có biến thể, tốc độ chạy thì ngon nhưng mà bị cái kia hình như là do google bot vào thôi thì phải ạ nhưng n cũng chỉ có thời điểm trong ngày thôi xong là n lại bình thường.
     
  6. Le Hieu

    Le Hieu Sơ Nhập Giang Hồ

    Site e chỉ dùng mỗi plugin wp-roket thôi cái optimize kia a có cái hướng dẫn ở đâu k ạ? Cho e xin với để e ngâm, mấy lần e cũng định lm nhưng sợ lm sai đi cái database thì toang {cry}
     
  7. Trí Mén

    Trí Mén Moderator Staff Member

    Code:
    https://github.com/major/MySQLTuner-perl
    Thớt chạy script trên, xong nó sẽ đưa ra gợi ý để optimize trong file my.cnf. Thường ram nhiều như thế thì phải set buffer pool lên vài GB thì nó mới đỡ ngốn cpu.
     
    Le Hieu likes this.
  8. Le Hieu

    Le Hieu Sơ Nhập Giang Hồ

    {beauty}{beauty}{beauty}e cảm ơn để e test thử xem sao ạ
     
  9. congloi

    congloi Sơ Nhập Giang Hồ

    server bác 30gb ram thì thử file config này

    Code:
    [client]
    socket=/var/lib/mysql/mysql.sock
    
    [mysql]
    max_allowed_packet = 64M
    
    [mysqld]
    local-infile=0
    ignore-db-dir=lost+found
    character-set-server=utf8
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    
    #bind-address=127.0.0.1
    # optimized my.cnf for MariaDB 5.5.x
    
    
    tmpdir=/home/mysqltmp
    
    innodb=ON
    #skip-federated
    #skip-pbxt
    #skip-pbxt_statistics
    #skip-archive
    #skip-name-resolve
    #old_passwords
    back_log = 1024
    max_connections = 600
    key_buffer_size = 768M
    myisam_sort_buffer_size = 768M
    myisam_max_sort_file_size = 8192M
    join_buffer_size = 2M
    read_buffer_size = 2M
    sort_buffer_size = 2M
    table_definition_cache = 10240
    table_open_cache = 10240
    thread_cache_size = 384
    wait_timeout = 1800
    connect_timeout = 10
    tmp_table_size = 1024M
    max_heap_table_size = 1024M
    max_allowed_packet = 64M
    #max_seeks_for_key = 4294967295
    #group_concat_max_len = 1024
    max_length_for_sort_data = 1024
    net_buffer_length = 16384
    max_connect_errors = 100000
    concurrent_insert = 2
    read_rnd_buffer_size = 512K
    bulk_insert_buffer_size = 8M
    # query_cache boost for MariaDB >10.1.2+
    # https://community.centminmod.com/posts/30811/
    query_cache_limit = 1536K
    query_cache_size = 256M
    query_cache_type = 1
    query_cache_min_res_unit = 2K
    query_prealloc_size = 262144
    query_alloc_block_size = 65536
    transaction_alloc_block_size = 8192
    transaction_prealloc_size = 4096
    default-storage-engine = InnoDB
    
    log_warnings=1
    slow_query_log=0
    long_query_time=1
    slow_query_log_file=/var/lib/mysql/slowq.log
    log-error=/var/log/mysqld.log
    
    # innodb settings
    innodb_large_prefix=1
    innodb_purge_threads=1
    innodb_file_format = Barracuda
    innodb_file_per_table = 1
    innodb_open_files = 10000
    innodb_data_file_path= ibdata1:10M:autoextend
    innodb_buffer_pool_size = 8192M
    
    ## https://mariadb.com/kb/en/mariadb/xtradbinnodb-server-system-variables/#innodb_buffer_pool_instances
    innodb_buffer_pool_instances=8
    
    innodb_log_files_in_group = 2
    innodb_log_file_size = 768M
    innodb_log_buffer_size = 64M
    innodb_flush_log_at_trx_commit = 2
    innodb_thread_concurrency = 0
    innodb_lock_wait_timeout=50
    innodb_flush_method = O_DIRECT
    innodb_support_xa=1
    
    # 200 * # DISKS
    innodb_io_capacity = 600
    innodb_io_capacity_max = 2000
    innodb_read_io_threads = 4
    innodb_write_io_threads = 2
    innodb_flush_neighbors = 1
    
    # mariadb settings
    [mariadb]
    #thread-handling = pool-of-threads
    #thread-pool-size= 20
    #mysql --port=3307 --protocol=tcp
    #extra-port=3307
    #extra-max-connections=1
    
    userstat = 0
    key_cache_segments = 1
    aria_group_commit = none
    aria_group_commit_interval = 0
    aria_log_file_size = 64M
    aria_log_purge_type = immediate
    aria_pagecache_buffer_size = 128M
    aria_sort_buffer_size = 128M
    
    [mariadb-5.5]
    innodb_file_format = Barracuda
    innodb_file_per_table = 1
    
    #ignore_db_dirs=
    query_cache_strip_comments=0
    
    innodb_read_ahead = linear
    innodb_adaptive_flushing_method = estimate
    innodb_flush_neighbor_pages = 1
    innodb_stats_update_need_lock = 0
    innodb_log_block_size = 512
    
    log_slow_filter =admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk
    
    [mysqld_safe]
    socket=/var/lib/mysql/mysql.sock
    log-error=/var/log/mysqld.log
    #nice = -5
    open-files-limit = 8192
    
    [mysqldump]
    quick
    max_allowed_packet = 64M
    
    [myisamchk]
    tmpdir=/home/mysqltmp
    key_buffer = 1024M
    sort_buffer = 256M
    read_buffer = 256M
    write_buffer = 256M
    
    [mysqlhotcopy]
    interactive-timeout
    
    [mariadb-10.0]
    innodb_file_format = Barracuda
    innodb_file_per_table = 1
    
    # 2 variables needed to switch from XtraDB to InnoDB plugins
    #plugin-load=ha_innodb
    #ignore_builtin_innodb
    
    ## MariaDB 10 only save and restore buffer pool pages
    ## warm up InnoDB buffer pool on server restarts
    innodb_buffer_pool_dump_at_shutdown=1
    innodb_buffer_pool_load_at_startup=1
    innodb_buffer_pool_populate=0
    ## Disabled settings
    performance_schema=OFF
    innodb_stats_on_metadata=OFF
    innodb_sort_buffer_size=2M
    innodb_online_alter_log_max_size=128M
    query_cache_strip_comments=0
    log_slow_filter =admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk
     
    Le Hieu likes this.
  10. Le Hieu

    Le Hieu Sơ Nhập Giang Hồ

    Thanks {loveyou}{loveyou}{loveyou} để e thử luôn xem sao
     
  11. Le Hieu

    Le Hieu Sơ Nhập Giang Hồ

    Mình chạy woo kb cài redis + litespeed có ổn k vì trước mình có tìm hiểu qua mà thấy kb cài có thể dẫn đến lỗi k thanh toán được nên hơi ghê {cry}{cry} thế là dùng mỗi wp-rocket thôi cho dễ cài.
     
  12. levis012

    levis012 Sơ Nhập Giang Hồ

    Cái này là do bạn chưa dùng cache.
    Đánh giá xem site bạn đọc nhiều hay ghi nhiều rồi dùng.
    Cache thì thử redis xem.

    Google "Cache wordpress redis" rồi xem hướng dẫn thử xem ntn.
    Nó sẽ hạn chế query vào DB và sẽ khỏe re. Về cơ bản ít ai để CPU cao quá 60% lắm.
    Cao đến mức đó là phải nghĩ cách xử lý rồi.

    Cache trước, nếu ko được thì tính tiếp đến cluster
     
    Le Hieu likes this.