[Hỏi] Cách tối ưu mysql

Discussion in 'Hỏi Đáp Kỹ Thuật' started by Nai, Mar 19, 2018.

  1. Nai

    Nai MiddleMan Staff Member

    Hiện tại em đang dùng con VPS $15 chung database cho khoảng 10 - 15 site.
    Sáng sớm kiểm tra bằng lệnh ps aux thì thì thấy mysql chiếm khoảng 65% CPU, nên lặt đặt views vài page của site cũ lẫn mới thì thấy load khá chậm (Thời gian load tầm 10 - hơn 30s ở lần views đầu tiên, lần 2 thì giảm còn 50% - 75% lần 1).

    Tốc độ load chậm ở các page product. Còn tag, cat page load vẫn ổn ở 3s.

    Câu hỏi đặt ra là em cần tối ưu mysql thế nào để chạy mượt hơn, còn nếu nâng cấp thì lên cao nào thì ổn hơn khi dùng chung database.
    Code querry ở product chỉ là lệch select column1-9 where id=xxx
    Cấu hình hiện tại:
    Code:
    CPU model :    Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
    Number of cores : 2
    CPU frequency : 2199.996 MHz
    Total amount of ram : 1839 MB
    Total amount of swap :  MB
    System uptime :   17 days, 17:28,
    Download speed : (9.12MB/s)
    I/O speed : 419MB/s
    Traffic toàn vps khoảng 500uv/day
    Sau khi restart mysql thì CPU tăng lên > 110%
     
    Last edited: Mar 19, 2018
  2. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Quan trọng là traffic của bác thế nào, và online max tại một thời điểm là bao nhiêu.
    Em site nào mà ra xèng là cho 1 mình 1 cái VPS, tạo nginx caching, cache thêm html, giới hạn thời gian cache.
    1 triệu row cũng cân hết bác ạ.
     
  3. Nai

    Nai MiddleMan Staff Member

    Nguyên VPS chắc khoảng 500 uv/ngày.
    Tổng records khoảng 4,5 triệu.
    Online max tại thời điểm chắc khoảng 20.
    cache html thì hơi hao ssd vì khoảng 10site đang chạy, đang định lên 5site nữa.
    Mình đang cache cho 1 site có traffic khoảng 300uv/ngày ở page cat và tag
     
  4. Lahm

    Lahm Sơ Nhập Giang Hồ

    vps 15$/month mà vẫn chậm à bác
     
  5. Nai

    Nai MiddleMan Staff Member

    Từ lúc bổ sung thêm site thứ 5 vào thì mysql đột nhiên tăng lên trong khi Google đang bị đèn đỏ méo thèm index bác à
     
    Lahm likes this.
  6. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Em đang clone youtube kiểu như xemhbo, được 10 ngày nay, crawler cũng hơn 1 triệu row, visit gần 1k, online max hiện tại 50 mà vẫn load ổn bác ạ.
    Google nó mới index 50k.
    Em tạo nginx caching trong vòng 1 giờ, không có visit sẽ tự hủy, thêm cache file html trong 24h cũng tự hủy.
    Em dùng VPS gói 20USD của OVH. Vẫn chạy ổn Bác Nai à.
     
    Nai likes this.
  7. Nai

    Nai MiddleMan Staff Member

    Chắc do mấy cái relate post random hàm có sẵn nên chậm, để cache lại xem sao :D
     
  8. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Bác lấy 100 id mới nhất rồi random trong 100 cái đó sẽ nhẹ và nhanh hơn.
     
  9. money

    money Hương Chủ

    Đã có bài thảo luận rất chi tiết vấn đề này rồi, tìm lại đê.
     
    Nai likes this.
  10. Nai

    Nai MiddleMan Staff Member

    Dạ có cái vụ random này rồi anh. Nhưng em có hỏi anh thì anh có nói random chung chung (không có where). Còn random theo cat thì không được, và em cũng thấy vậy :D
    Bài cũ bữa anh @Trí Mén thắc mắc
     
  11. money

    money Hương Chủ

    Kaka vậy là có giải pháp bên kia rồi nhé. Làm xong confirm xem tốc độ + mức độ tốn resource so với hiện tại như thế nào.
     
    Nai likes this.
  12. Nai

    Nai MiddleMan Staff Member

    Sao khi loại bỏ hết ORDER BY RAND() thì kết quả như sau:
    • CPU mysql chiếm qua câu lệnh ps aux vẫn dậm chân tại chỗ mà ko có dấu hiệu thuyên giảm (>110%) + RAM mysql tăng lên chắc do cache.
    • Tốc độ load trang product ở view đầu tiên giảm 50% ( 15 - 18s), lần views 2 thì đã ok hơn dù chưa cache (2-4s)
    Em thử enable slow querry log nhưng vẫn ko có bất cứ ghi chép gì (để time = 1)
     
  13. console

    console Bang Chúng

    Code dỏm hehe :D
     
  14. Nai

    Nai MiddleMan Staff Member

    {too_sad}
     
  15. Hoa Mãn Lâu

    Hoa Mãn Lâu Trưởng Môn

    Bỏ code lên đây mn cùng xem nào
     
  16. Nai

    Nai MiddleMan Staff Member

    Vãi, nguyên cái source web luôn đó bác. Mà cũng đang đoán được nguyên nhân rồi.
    Do một mớ comment chưa đánh index làm querry thấy bà luôn. Sau khi khắc phục thì load site ầm ầm nhưng CPU vẫn 110%
     
  17. Nai

    Nai MiddleMan Staff Member

    Update CPU đã trở về bình thường. Nguyên nhân ban là vẫn còn zend opcache nên cpu tạm thời cao trong mấy chục phút
    Tự code bro
     
  18. money

    money Hương Chủ

    Dạo này code lên tay nhờ {look_down}{look_down}{look_down}
    Làm theo cách 2 thì anh đã warning là nó vẫn bị chậm và hao resource cho shot đầu tiên. Các shot sau là bao đâm.
     
    Nai likes this.
  19. Nai

    Nai MiddleMan Staff Member

    Cách 2 quay tay trước luôn để bao đâm Google vào khỏi thất vọng luôn anh :){beauty}
     
  20. Hoa Mãn Lâu

    Hoa Mãn Lâu Trưởng Môn

    Vãi thật từ hồi lập group tới h thấy dc 2 thánh tự học code mà thành tài, có thím với lão @Trí Mén