- vừa được xem lúc

[Phần 1] Performance có nghĩa là gì?

0 0 26

Người đăng: Ngô Tuấn Trường

Theo Viblo Asia

Performance có nghĩa là gì?

Hiệu suất là tốc độ đáp ứng một request. Ví dụ trong một ứng dụng Web (dạng client-server), khi có một request đến server thì server sẽ phản hổi lại một response nhanh như thế nào (ví dụ 1ms, 10ms,.. cho một request) được xem là hiệu suất của hệ thống.

Hệ thống đơn giản
Hình ảnh một hệ thống đơn giản

Nguyên nhân phát sinh vấn đề hiệu suất

  • Thắt nút cổ chai tại các hàng đợi xử lý (queue network, queue trong OS, queue IO trong database,...)
    • Database
      • Do viết query chưa hiệu quả
      • Tạo schema database chưa tốt
    • Tầng ứng dụng
      • Thuật toán xử lý chậm chạm
      • Sử dụng cấu trúc dữ liệu không hiệu quả
  • Chưa áp dụng xử lý đa luồng
  • Bị giới hạn về phần cứng (ví dụ như sử dụng Disk HDD để đọc ghi file thay vì SSD)

Vậy nguyên tắc nâng cấp hệ thống:

  • Tăng tính hiệu quả tại các điểm sau:
    • Sử dụng resource sao cho hiệu quả (ví dụ như quản lý tốt việc sử dụng memory, sử dụng HTTP2 thay vì dùng HTTP1.1,...)
    • Viết logic (thuật toán), query tại tầng ứng dụng và database sao cho hiệu quả.
    • Sử dụng cấu trúc dữ liệu và schema hợp lý. Ví dụ nếu thiết kế business tốt thay vì tạo 10 table thì chỉ cần tạo 5 table và như thế câu query cũng đơn giản và nhanh hơn.
    • Sử dụng cache nếu có thể. Ví dụ cache tại phía client, server, database.
  • Xử lý đa luồng thay vì xử lý tuần tự.
  • Tăng khả năng của phần cứng. Nhiều lúc hệ thống ổn hết rồi mà do phần cứng cùi mía quá làm giảm performance.

Vậy mục tiêu tối ưu của chúng ta là làm sao để tăng tốc độ đáp ứng của một request tức là chúng ta đang làm giảm độ trễ của việc đáp ứng một request. Và làm sao để tăng throughput của hệ thống tức là tăng khả năng xử lý số lượng request của hệ thống ví dụ system có thể xử lý 1000 request/1s bây giờ chúng ta tuning thành 10000/1s.

(còn tiếp...)

Bình luận

Bài viết tương tự

- vừa được xem lúc

Một số lưu ý cải thiện performance khi làm việc với Rails

Khi làm việc với ruby on rails chắc hẳn chúng ta sẽ làm việc với active record rất nhiều. Tuy nhiên có nhiều điều có thể ta vẫn chưa thực sự hiểu, ví dụ như ActiveRecord execute SQL query như thế nào? Và cũng còn khá nhiều lập trình viên khác cũng không để ý tới điều này.

0 0 111

- vừa được xem lúc

3 cách tối ưu hóa hiệu suất Rails views

. Chào các bạn, chào các bạn. Trong bài viết này, chúng ta sẽ cùng nhau tìm hiểu một số kỹ thuật tối ưu hóa hiệu suất đơn giản và hiệu quả mà bạn có thể sử dụng ngay từ khi bắt đầu viết code.

0 0 67

- vừa được xem lúc

Kĩ thuật Memoize cải thiện performance

Kĩ thuật Memoize cải thiện performance. Memoize là một kĩ thuật cache lại giá trị trả về của các hàm dựa trên tham số truyền vào nó.

0 0 41

- vừa được xem lúc

MySQL Performance Tuning With Index

Lâu rồi không viết bài trên viblo nên để cái tiêu đề hơi công nghiệp =)) Xin chào các bạn, đợt rồi mình mới được làm vài task cải thiện thiện tốc độ truy vấn mysql nên hôm nay xin phép chia sẻ lại chú

0 0 86

- vừa được xem lúc

Làm thế nào để tối ưu những câu query trong Laravel ?

Đặt vấn đề. Nếu thấy ứng dụng của bạn đang chạy chậm , thì có một số nguyên nhân dẫn đến tình trạng này ví dụ như :.

0 0 2.1k

- vừa được xem lúc

Kiểm tra chịu tải của server với K6.io (Phần 1)

Lời mở đầu. Để có được một sản phẩm phần mềm tốt việc test performance là việc hết sức quan trọng để xác định độ ổn định của hệ thống, Để test được hắn một mình bạn không thể gửi request bằng cơm để t

0 0 200