Danh sách các biến trạng thái của Query Cache

Một phần của tài liệu NGHIÊN CỨU ẢNH HƯỞNG CỦA CACHING ĐẾN HIỆU NĂNG TRUY VẤN CỦA CÁC ỨNG DỤNG WEB (Trang 36 - 38)

4 Cài đặt một ứng dụng thử nghiệm và đánh giá hiệu năng

3.4Danh sách các biến trạng thái của Query Cache

tính được tỷ lệ phần trăm cache hit, cache miss. . . theo các công thức sau:

• Tỷ lệ phần trăm cache hit được tính theo công thức: Qcache_hits

Qcache_hits+Com_select

Trong đó Com_select là biến trạng thái giữ số lượng câu truy vấn SELECT

được thực thi.

Ví dụ, nếu Qcache_hits là 15,593 và Com_select là 10,193 thì tỷ lệ phần trăm cache hit sẽ là:

15,593

15,593 + 10,193 =.60470 = 60.47%

• Tỷ lệ các câu truy vấn INSERT vào bộ nhớ cache được tính theo công thức: Qcache_inserts

Com_select ∗100

• Tỷ lệ phần trăm bộ nhớ còn trống được tính theo công thức: Qcache_f ree_memory

• Tỷ lệ phần trăm bộ các khối còn trống được tính theo công thức: Qcache_f ree_blocks

Qcache_total_blocks ∗100

3.2.3 Sự phân mảnh bộ nhớ

Bộ nhớ sau khi dùng một thời gian thì sự phân mảnh là điều không thể tránh khỏi. Phân mảnh là hiện tượng bộ nhớ bị chia thành các khối nhỏ không chứa dữ liệu được lưu nằm rải rác và không liên tục trong bộ nhớ chính. Những khối này thường có kích thước khá nhỏ và không đủ để lưu dữ liệu mới. Sự xuất hiện những khoảng trống như vậy được gọi là sự phân mảnh, và đây là một vấn đề kinh điển trong bộ nhớ và sự cấp phát hệ thống tệp tin từ trước tới nay.

Sự phân mản có thể xảy ra vì một số lý do. Nhưng với query cache có hai nguyên nhân chính của sự phân mảnh:

• Nguyên nhân thứ nhất đấy là các bộ kết quả có thể không phải khi nào cũng có kích thước đúng bằng một khối của bộ nhớ. Query cache sẽ ước tính kích thước của bộ kết quả sẽ được lưu trữ trong bộ nhớ cache và cấp phát một khối bộ nhớ để lưu trữ bộ kết quả này. Việc ước tính là cần thiết vì nó giúp tính toán và cấp phát các khối của bộ nhớ sao cho dư ít bộ nhớ nhất. Sau khi tính toán query cache sẽ tiến hành cấp phát các khối nhớ có kích thước đủ để lưu trữ bộ kết quả. Và có thể bộ nhớ cấp phát có kích thước lớn hơn bộ kết quả. Điều này để lại một khoảng cách giữa các khối của bộ nhớ. Quá trình phần mảnh được minh họa như hình 3.5.

• Nguyên nhân thứ hai của sự phân mảnh đấy là khi một truy vấn được lưu trong bộ nhớ bị hết hiệu lực hoặc bị xóa khỏi bộ nhớ sẽ tạo nên những khoảng bộ nhớ trống.

Thông thường, những khoảng trống của bộ nhớ sinh ra khi cấp phát hay khi một truy vấn nào đó bị mất hiệu lực có kích thước quá nhỏ để lưu bộ kết quả truy vấn mới hoặc nếu đủ kích thước để lưu một bộ kết quả truy vấn nào đó thì cũng dễ sinh ra khoảng trống bộ nhớ mới theo nguyên nhân thứ nhất.

Cho tới nay, vẫn chưa có phương pháp nào có thể loại bỏ được hoàn toàn sự phân mảnh bộ nhớ mà chỉ có thể giảm thiểu tới mức nhỏ nhất có thể sự phân

Một phần của tài liệu NGHIÊN CỨU ẢNH HƯỞNG CỦA CACHING ĐẾN HIỆU NĂNG TRUY VẤN CỦA CÁC ỨNG DỤNG WEB (Trang 36 - 38)