Tối ưu hóa MySql trên VPS bằng công cụ Mysqltuner

Discussion in 'Kinh nghiệm - Thủ thuật' started by bboy_nonoyes, Jan 17, 2014.

  1. bboy_nonoyes

    bboy_nonoyes Administrator Staff Member

    (Lượt xem: 488)

    Vấn đề lưu lượng các câu lệnh trong mysql trở nên quá tải khi lượng người truy cập tới website của bạn lên tới con số hàng trăm thậm chí hàng nghìn người trong cùng một thời điểm sẽ làm cho hệ thống máy chủ CSDL không thể xử lý kịp đồng thời sẽ xảy ra nhiều lỗi hệ thống không thể đoán trước. Sau đây TCN sẽ hưỡng dẫn một số cách config CSDL Mysql tối ưu nhất.
    [​IMG]
    1. Tối ưu hóa hiệu xuất câu lệnh Mysql với Mysqltuner :
    MySQL Tuner Script là giải pháp cho trường hợp này. Nó được viết trên Perl, chức năng chính là phân tích MySQL server, sau đó đưa ra các cấu hình đề nghị trên thông số thu được. Do đó, MySQL Tuner có thể cải thiện được hiệu suất làm việc của server tong bất kỳ trường hợp nào.

    Câu lệnh cài đặt :


    cd /usr/local/bin
    wget http://mysqltuner.pl/mysqltuner.pl
    chmod +x mysqltuner.pl
    mysqltuner


    Truy cập quyền 'root' trong Mysql :


    mysql -uroot -p


    Cập nhật thông số theo mysqlTuner :


    mysql> SET GLOBAL query_cache_size=1024*1024*16;


    Xem thông số đã thiết lập :


    mysql> SHOW GLOBAL VARIABLES LIKE 'query_cache%';


    2. Tối ưu hóa các thiết lập trong Mysql :

    Sử dụng lệnh truy cập, chỉnh sửa tệp tin '/etc/my.cnf' :


    vi /etc/my.cnf


    Tạo các thay đổi sau phù hợp với máy chủ :


    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    user=mysql
    symbolic-links=0
    local-infile=0

    #ignore_builtin_innodb
    innodb_file_per_table=1
    default_storage_engine=MyISAM
    skip-external-locking
    query_cache_limit=1M
    query_cache_size=32M ## 32MB for every 1GB of RAM
    max_user_connections=200
    max_connections=500
    thread_cache_size=128
    key_buffer_size=64M ## 128MB for every 1GB of RAM
    join_buffer=1M
    max_connect_errors=20
    max_allowed_packet=8M
    table_open_cache=256
    sort_buffer_size=1M ## 1MB for every 1GB of RAM
    read_buffer_size=1M ## 1MB for every 1GB of RAM
    read_rnd_buffer_size=1M ## 1MB for every 1GB of RAM
    thread_concurrency=2 ## Number of CPUs x 2
    myisam_sort_buffer_size=64M
    net_buffer_length = 8K

    collation-server=utf8_unicode_ci
    character_set_server=utf8

    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    open_files_limit=8192

    [mysqldump]
    quick
    max_allowed_packet=16M

    [mysql]
    no-auto-rehash

    [isamchk]
    key_buffer=64M
    sort_buffer=64M
    read_buffer=16M
    write_buffer=16M

    [myisamchk]
    key_buffer=64M
    sort_buffer=64M
    read_buffer=16M
    write_buffer=16M

    [mysqlhotcopy]
    interactive-timeout

    [client]
    default-character-set=utf8


    Sau khi hoàn tất các bạn khởi động lại Mysql :


    /etc/init.d/mysqld restart


    hoặc


    service mysqld restart


    Với các thiết lập trên hệ thống Mysql của bạn cũng đã được giảm tải 40% hiệu xuất của hệ thống. Ngoài ra các bạn hãy tìm hiểu thêm để config hệ thống tốt nhất cho máy chủ của bạn.

    Chúc các bạn thành công !

    Mr.Vinh

    Trang Công Nghệ

    Theo Trang Công Nghệ
     
  2. Facebook comment - Tối ưu hóa MySql trên VPS bằng công cụ Mysqltuner

Share This Page