HƯỚNG DẪN Hướng dẫn sử dụng MySQLTunner

Thảo luận trong 'KIẾN THỨC VPS/SERVER' bắt đầu bởi quyet1990, 8/11/16.

  1. quyet1990

    quyet1990 New Member

    Tham gia ngày:
    22/10/16
    Bài viết:
    220
    Đã được thích:
    0
    Chạy MySQL ở cài đặt tối ưu cho các nguồn tài nguyên cụ thể giúp trong việc xử lý quá trình máy chủ tốt hơn và ngăn ngừa máy chủ chậm xuống.

    Cơ sở dữ liệu điều chỉnh (tuning database) là một chủ đề rộng lớn, và hướng dẫn này chỉ bao gồm các vấn đề cơ bản về việc chỉnh sửa cấu hình MySQL của bạn.
    Các bước trong hướng dẫn này yêu cầu sử dụng user root.

    Để xác định xem cơ sở dữ liệu MySQL của bạn có cần phải được cấu hình lại, tốt nhất là bạn nên xem nguồn tài nguyên đang hoạt động hiện tại như thế nào bằng các câu lệnh sau:

    Mã:
    echo [PID] [MEM] [PATH] && ps aux | awk '{print $2, $4, $11}' | sort -k2rn | head -n 20
    ps -eo pcpu,pid,user,args | sort -k 1 -r | head -20
    
    MySQLTuner
    Các script MySQLTuner đánh giá cài đặt MySQL của bạn, và sau đó kết quả đầu ra sẽ cho biết bạn có nên điều chỉnh để làm tăng hiệu suất và sự ổn định của máy chủ của bạn.
    Tải MySQLTuner:
    Mã:
     wget http://mysqltuner.pl/ -O mysqltuner.pl
    Chạy chương trình:
    Mã:
    perl mysqltuner.pl
    Kết quả đầu ra của bạn:
    Mã:
    
    >>  MySQLTuner 1.4.0 - Major Hayden <major@mhtx.net>
    >>  Bug reports, feature requests, and downloads at http://mysqltuner.com/
    >>  Run with '--help' for additional options and output filtering
    Please enter your MySQL administrative login: root
    Please enter your MySQL administrative password:
    [OK] Currently running supported MySQL version 5.5.41-0+wheezy1
    [OK] Operating on 64-bit architecture
    
    -------- Storage Engine Statistics -------------------------------------------
    [--] Status: +ARCHIVE +BLACKHOLE +CSV -FEDERATED +InnoDB +MRG_MYISAM
    [--] Data in InnoDB tables: 1M (Tables: 11)
    [--] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 17)
    [!!] Total fragmented tables: 11
    
    -------- Security Recommendations  -------------------------------------------
    [OK] All database users have passwords assigned
    
    -------- Performance Metrics -------------------------------------------------
    [--] Up for: 47s (113 q [2.404 qps], 42 conn, TX: 19K, RX: 7K)
    [--] Reads / Writes: 100% / 0%
    [--] Total buffers: 192.0M global + 2.7M per thread (151 max threads)
    [OK] Maximum possible memory usage: 597.8M (60% of installed RAM)
    [OK] Slow queries: 0% (0/113)
    [OK] Highest usage of available connections: 0% (1/151)
    [OK] Key buffer size / total MyISAM indexes: 16.0M/99.0K
    [!!] Query cache efficiency: 0.0% (0 cached / 71 selects)
    [OK] Query cache prunes per day: 0
    [OK] Temporary tables created on disk: 25% (54 on disk / 213 total)
    [OK] Thread cache hit rate: 97% (1 created / 42 connections)
    [OK] Table cache hit rate: 24% (52 open / 215 opened)
    [OK] Open file limit used: 4% (48/1K)
    [OK] Table locks acquired immediately: 100% (62 immediate / 62 locks)
    [OK] InnoDB buffer pool / data size: 128.0M/1.2M
    [OK] InnoDB log waits: 0
    -------- Recommendations -----------------------------------------------------
    General recommendations:
        Run OPTIMIZE TABLE to defragment tables for better performance
        Enable the slow query log to troubleshoot bad queries
    Variables to adjust:
        query_cache_limit (> 1M, or use smaller result sets)
    
    MySQLTuner đưa ra gợi ý về việc làm thế nào giúp cơ sở dữ liệu của bạn tốt hơn. Nếu bạn đang lo lắng về việc cập nhật cơ sở dữ liệu của bạn theo cách riêng của bạn sẽ gây ra lổi cho hệ thống, thì bạn nên đi theo các gợi ý của MySQLTuner là một trong những cách an toàn hơn để cải thiện hiệu suất cơ sở dữ liệu của bạn


    Điều chỉnh MySQL
    Tập tin bạn dùng để thay đổi nằm ở /etc/mysql/my.cnf.
    Lưu ý:
    Trước khi cập nhật các cấu hình MySQL, tạo ra một bản sao lưu của file my.cnf:
    Mã:
     cp /etc/mysql/my.cnf ~/my.cnf.backup
    Sau mỗi lần thay đổi khởi động lại MySQL:
    Trên Debian/Ubuntu:
    Mã:
     service mysql restart
    Trên CentOS/Fedora:
    Mã:
     /etc/init.d/mysqld restart
    Khi thay đổi các giá trị trong file my.cnf thể chắc chắn rằng dòng bạn đang thay đổi không có tiền tố (#) ở phí trước.
    Một số giá trị có thể thay đổi để giúp cho cơ sở dữ liệu của bạn:

    key_buffer
    Thay đổi giá trị key_buffer cấp phát bộ nhớ hơn tới MySQL, có thể tăng tốc độ đáng kể lên cơ sở dữ liệu của bạn, giả sử bạn có bộ nhớ miễn phí. Kích thước key_buffer thường phải mất đến không quá 25% của bộ nhớ hệ thống khi sử dụng công cụ bảng MyISAM, và lên đến 70% cho InnoDB.

    Nếu giá trị được đặt quá cao, tài nguyên sẽ bị lãng phí. Theo tài liệu của MySQL, cho các máy chủ với 256MB RAM (hoặc hơn) với nhiều bảng, một thiết lập 64M được khuyến cáo, trong khi các máy chủ với 128MB RAM và ít bảng có thể được thiết lập 16M, đây là giá trị mặc định. Các trang web với các nguồn tài nguyên và các bảng thậm chí còn ít hơn có thể có giá trị này thiết lập thấp hơn.

    max_allowed_packet
    Kích thước tối đa của một gói tin được phép gửi. Một gói là một state SQL duy nhất, một hàng duy nhất được gửi tới một client hoặc một bản ghi được gửi từ một master đến một slave. Nếu bạn biết rằng máy chủ MySQL của bạn sẽ được xử lý các gói lớn, nó là tốt nhất để tăng kích thước của gói tin lớn nhất của bạn. Nếu giá trị này nên được thiết lập quá nhỏ, bạn sẽ nhận được một lỗi trong error log của bạn.

    thread_stack
    Giá trị chưa kích thước stack cho mỗi luồng (theard). MySQL xem xét giá trị mặc định của biến thread_stack có đủ cho sử dụng bình thường; Tuy nhiên, một lỗi liên quan đến thread_stack được ghi lại, điều này dẫn tới ta có thể nâng giá trị đó lên.

    thread_cache_size
    Nếu thread_cache_size là "turned off" (thiết lập là 0), sau đó tất cả các kết nối mới được thực hiện cần một luồng mới tạo ra cho chúng, và khi kết nối ngắt kết nối các luồng sẽ bị phá hủy. Những luồng không sử dụng sẽ được lưu trữ trong bộ nhớ cache cho đến khi chúng cần được sử dụng để kết nối.

    Thông thường thiết lập này đã ít ảnh hưởng đến hiệu suất, trừ khi bạn nhận được hàng trăm kết nối cho mỗi phút, lúc đó giá trị này nên được tăng lên vì phần lớn các kết nối đều được thực hiện trên bộ nhớ cache.

    max_connections
    Đặt số lượng tối đa kết nối đồng thời. Nó là tốt nhất để xem xét số lượng tối đa kết nối bạn đã có trong quá khứ và sau đó thiết lập chúng. Có một số bộ đệm giữa số lượng và giá trị max_connections.

    table_cache
    Nên được giữ cao hơn giá trị open_tables của bạn. Để xác định sử dụng giá trị này:
    Mã:
    SHOW STATUS LIKE 'open%';
     
Tags:

Chia sẻ trang này

Đang tải...