TungNT (Blue)

tungnt.blue@gmail.com

User Tools

Site Tools


development:tps-qps

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
development:tps-qps [2024/08/21 07:27] – [TPS - Transactions per second] tungntdevelopment:tps-qps [2024/08/21 07:50] (current) – [Bài toán] tungnt
Line 1: Line 1:
 ====== TPS & QPS ====== ====== TPS & QPS ======
- 
- 
- 
- 
  
 ===== QPS - Query rate per second ===== ===== QPS - Query rate per second =====
Line 11: Line 7:
 RT - Response time: Thời gian phản hồi của hệ thống, tính từ lúc request được gửi đi tới khi nhận được respond trả về từ hệ thống. RT - Response time: Thời gian phản hồi của hệ thống, tính từ lúc request được gửi đi tới khi nhận được respond trả về từ hệ thống.
  
-{{ :development:screenshot_2024-08-21_at_14.21.33.png |}}+{{ :development:screenshot_2024-08-21_at_14.21.33.png?400 |}}
  
  
Line 18: Line 14:
 TPS - Transactions per second: Số Transaction được xử lý thành công trong 1 giây. TPS - Transactions per second: Số Transaction được xử lý thành công trong 1 giây.
  
-{{ :development:screenshot_2024-08-21_at_14.24.35.png |}}+{{ :development:screenshot_2024-08-21_at_14.24.35.png?400 |}} 
 + 
 +Một TPS có thể bao gồm nhiều QPS, ví dụ: chúng ta truy cập một trang Web, có thể khi đó sẽ cần truy cập Server N lần - Một Transaction được tạo ra thì có N QPS được tạo ra. 
 + 
 +**Ví dụ:** một người A uống được 10 lon bia trong 10 phút, người B uống được 1 lon bi trong 1 phút. Nhưng người B chưa chắc uống được 10 long bia trong vòng 10 phút. Khi này người A là TPS, người B là QPS. 
 + 
 +===== Công thức ===== 
 + 
 +  * RT = Thời gian phản hồi trung bình 
 +  * QPS (TPS) = Số lượng yêu cầu / RT giao dịch mỗi giây 
 +  * Concurrent = Số lượng yêu cầu / Số lượng giao dịch được hệ thống xử lý cùng lúc 
 + 
 +**Ví dụ:** Ngân hàng mở cửa vào buổi sáng, cho 10 nhân viên đứng ở 10 quầy. THời gian giải quyết trung bình của mỗi nhân viên là 5 phút. Khi đó: 
 + 
 +  * Concurrent = 10 
 +  * RT = 5*60 = 300s 
 +  * QPS (TPS) = 10/300 = 0.003 lượt
  
-Một TPS có thể bao gồm nhiều QPS, ví dụ: chúng ta truy cập một trang Web, có thể khi đó sẽ cần truy cập Server nhiều lần.+> **QPS (TPS) = Concurrent/RT**
 ====== Bài toán ====== ====== Bài toán ======
  
 > Theo định luật 20/80 vào thời gian cao điểm hệ thống, trên một Server duy nhất có PV (page view) mỗi ngày là 2.000.000. Thì Server này cần bao nhiêu QPS? Giả sử mỗi Server chịu được 60 QPS thì cần bao nhiêu Server? > Theo định luật 20/80 vào thời gian cao điểm hệ thống, trên một Server duy nhất có PV (page view) mỗi ngày là 2.000.000. Thì Server này cần bao nhiêu QPS? Giả sử mỗi Server chịu được 60 QPS thì cần bao nhiêu Server?
  
 +  * PV = 2000000
 +  * CONCURENT = PV * 80%
 +  * RT = 86400 * 20%
 +  * QPS = CONCURENT/RT = 92.5
 +  * SV = QPS/60 = 92.5/60 ~ 2 (Cần 2 Server)
  
 +**Để cải thiện QPS cần:**
 +  * Tăng CONCURENT: Tăng luồng xử lý đồng thời (thread), mở rộng Backend,...
 +  * Giảm RT: tối ưu giảm thời gian xử lý - sử dụng cache, tối ưu hoá CSDL, tối ưu hoá code, giảm response không cần thiết, đẩy nhanh tác vụ (sử dụng rabbitmq, kafka,...),...
development/tps-qps.1724225267.txt.gz · Last modified: 2024/08/21 07:27 by tungnt

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki