Q&A-MongoDB Performance Benchmark using SandStorm


Published on

Impetus webcast ‘MongoDB performance benchmark using SandStorm’ available at http://bit.ly/1kuJzo0

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Q&A-MongoDB Performance Benchmark using SandStorm

  1. 1. Webinar: MongoDB Performance Benchmark Using SandStorm recording available here Questions and Answers from March 28, 2014 session Q. Can I use SandStorm as a pure data loader for MongoDB? The CRUD operations will be performed by my Application. A. SandStorm can be used as a data loader for your MongoDB. To do so, one has to create a test script with the correct JSON to perform a “write” operation on your database. You can read the data from a CSV file or you may write your own regular expression to parameterize the variables in your JSON at run time. Once this is done, you may assign the script to multiple virtual users through the controller and execute the scenario to populate the data. The SandStorm analyzer would give you details on the through put of data ingestion and other reports. Q. Is it possible to monitor each node in the cluster deployment using your integrated resource monitoring feature? Does this feature also allow monitoring a particular process? A. It is possible to monitor each node in your cluster with the integrated resource monitoring feature. The user needs to have administrator rights on each of these nodes, and in case of Linux nodes, it is mandatory to have the daemon- RSTATD to be up and running. Q. Does SandStorm generates load with all type of operations and provide all kind of characteristics? A. SandStorm helps to generate load on your application in various ways. If you have a GUI in place, SandStorm helps you to record your use cases and generate load on the application in form of get/post requests. If you have web-services ready, but not the GUI, SandStorm still would be able to help in generating the load using directly the web services. If you want to load test your database by executing queries against it, SandStorm allows you to execute them on most of the popular databases- commercial or open source. With specific transactions on database, which falls under the CRUD umbrella (Create, Read, Update, Delete), SandStorm supports execution of JSON objects that are required to be executed to insert/update/read data to/from MongoDB. SandStorm can help you predict your application and DB performance with its Integrated Resource Monitoring feature. This feature not only gives you details about system health in terms of CPU/Memory/Network utilization, but also gives you specific counters related to most of the popular application/web/db servers. To name a few, we provide support to monitor specific MongoDB counters like read%, Write%, deadlocks, etc.
  2. 2. Q. If a load balancer is not in place, can I still design a scenario such that it sends distributed load to all the nodes in my deployment? Can I configure the distribution? A. This is definitely possible. When you design a scenario using the SandStorm Controller, you have an option of creating various groups of virtual users. Each group can be independently assigned a test case that can be executed on a particular node. If you can recall, we used a “Cluster Configuration” when we were talking about the SandStorm recorder. This feature would allow us to send the requests to a particular node. You may also create multiple copies of test cases which in turn send requests to different nodes. Q. How can I design test scenarios simulating realistic load in terms of query operations per sec using SandStorm? A. SandStorm supports all types of query operations on MongoDB, CRUD operations being most popular. In order to design a scenario which simulate realistic load in terms of query operations per second, first you need to create the scripts to perform each of these operations. After suitable parameterization, you need to execute each of these queries individually to determine the execution time for it. Once you have the execution time for all the queries, now you can do a workload modeling with the combination of these queries. And the same workload can then be simulated using the scenario design from SandStorm controller. Alternatively you can also use the Goal Oriented scenarios supported by SandStorm Controller to define your goals on transaction per second, response time, resource consumption and others. Q. Which are the important MongoDB parameters that I should monitor? Do I need to make any configuration changes in MongoDB to allow SandStorm to monitor? A. The critical database parameters one should monitor are-  Connections- Total, Available, total created  Cursors- Total Open  Commits  Global Locks  Index counters like- hits, misses, reset  Locks  Network bytes  Op Counters like- Insert, read, update, delete  Record stats like- Page faults exceptions, accesses not in memory, etc.  Redo size/sec  Logical reads/sec
  3. 3.  Block changes/sec  Physical reads/writes  User calls/parses  Logons, executes, Transactions/sec, Table scan, Locks acquired/sec, etc. One may choose the counters based on the specific requirements. You do not have to make any configuration changes in MongoDB to allow the SandStorm monitors. Only requirement is that you should have a valid database username, password, IP address and the port to connect to it. Q. You mentioned about cloud edition of SandStorm. Can I use that edition for MongoDB testing? If yes, how I can do that? A. Sure, you can use the SandStorm Cloud edition for Mongo DB testing. You may create the scripts from the SandStorm recorder and parameterize and validate them. One this is completed, you may upload these scripts to the SandStorm cloud portal. To get a SandStorm portal account, you need to register to SandStorm cloud portal link which is available on our web-site. Once all your scripts are on the portal, you may create the load test scenarios on the portal itself and chose the load generator machines from the available regions. We make use of Amazon EC2 services, thus load can be generated from multiple geographies across the globe.