Nhận và đặt thử nghiệm hiệu suất trên Google BigTables (và các DB tích hợp khác)


17

Một số cách hiệu quả để thực hiện kiểm tra hiệu năng lập trình trên các hoạt động cơ sở dữ liệu, đặc biệt là trong các môi trường mà chính cơ sở dữ liệu không cung cấp các công cụ chuyên dụng?

Ví dụ: trong Google App Engine, toàn bộ tải trang được đánh giá là một thao tác có thể bao gồm các hoạt động cơ sở dữ liệu cụ thể. Vấn đề này cũng có khả năng xuất hiện trong SQLite và các DB tích hợp khác. Vì khó có thể trừu tượng hóa hoàn toàn các lựa chọn và tương đương (cần phải kiểm tra), có công cụ cơ sở dữ liệu nào được đề xuất để thực hiện chẩn đoán kỹ lưỡng hơn cho các loại truy vấn này không?


Bạn có quyền truy cập trực tiếp vào cơ sở dữ liệu trong câu hỏi?
Cá đuối

Vâng, tôi là người viết ứng dụng. Và trong khi hiệu suất ứng dụng là một câu hỏi khác, tôi nhận được một số lượt truy cập hiệu suất khá nghiêm trọng trong một truy vấn khó chịu mà tôi đã viết.
Brian Ballsun-Stanton

Đôi khi một tá cặp mắt là một chẩn đoán tốt hơn một bộ phân tích truy vấn ... (ok không thường xuyên như vậy)
jcolebrand

@Brian Tôi nghĩ bạn sẽ làm tốt hơn trên Stackoverflow với loại câu hỏi này vì đây là câu hỏi về lập trình nhiều hơn là câu hỏi DBA.
IamIC

@IanC Drat. Tôi đang cố gắng để có được lớp lót lớn hơn là toàn bộ hiệu suất. Nhưng tôi sẽ xóa nếu mọi người không nghĩ câu hỏi phù hợp. (Tôi cũng đang cố gắng đảm bảo rằng trang web không phải là oracle / sql-server / mysql mọi lúc)
Brian Ballsun-Stanton

Câu trả lời:


1

Dường như với tôi vấn đề của bạn là bạn đang cố kiểm tra các số liệu hiệu suất không được hỗ trợ tốt trong db cơ bản. Điều này khiến cho việc so sánh hiệu suất giữa các hệ thống trở nên rất khó khăn vì các cách tiếp cận cơ bản rất khác nhau. Tôi không nghĩ có thể so sánh táo với táo giống như tôi không nghĩ bạn có thể làm táo để so sánh táo với các cách tiếp cận loại ORDBMS với các cách tiếp cận loại RDBMS. Các mối quan tâm về hiệu năng quá khác nhau và nếu Stonebraker đúng rằng việc tối ưu hóa ORDBMS cho các bài kiểm tra TPC-C sẽ không thành vấn đề, thì đối với các hệ thống thậm chí còn cách xa nhau thì điều đó là không thể. (Tôi nghĩ rằng anh ta ở ngay đó, tuy nhiên, chỉ khi chức năng ORDBMS phát huy tác dụng.)

Tôi nghĩ rằng những gì bạn cần phải trung thực là xem xét cách bạn sẽ sử dụng từng hệ thống và xây dựng một công cụ điểm chuẩn dựa trên phương pháp bạn thực hiện với từng hệ thống. Sau đó, bạn có thể nói ít nhất cho quy trình công việc đó rằng điểm chuẩn cho thấy một cái gì đó cụ thể. Tôi không thấy làm thế nào bạn có thể khái quát hóa tuy nhiên. Bạn có thể chạy nó trong một hồ sơ để có thêm thông tin về thời gian dành cho việc chạy thử trên các động cơ khác nhau.

Tuy nhiên, điểm chuẩn db rất khó để có ý nghĩa trong hoàn cảnh tốt nhất và khi bạn so sánh các hệ thống khác nhau, nó trở nên không thể khái quát hóa.


0

Appstats là công cụ chính để đo hiệu suất trên App Engine. Nó sẽ hiển thị thời gian được sử dụng cho mỗi RPC, bao gồm kho dữ liệu, memcache, urlfetch và các yêu cầu thư trong biểu đồ đồ họa. Thông thường các yêu cầu xuất hiện dưới dạng "cầu thang" trong đó mỗi yêu cầu bắt đầu tại điểm yêu cầu trước đó kết thúc, trên dòng tiếp theo xuống.

Nếu bạn sử dụng các yêu cầu không đồng bộ nâng cao trong ndb, bạn thực sự có thể thấy các yêu cầu xảy ra song song.

Công cụ này đã giúp tôi rất nhiều trong việc xem thời gian được sử dụng và cách tối ưu hóa các truy vấn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.