Scalability/Performance SWAT

Objectives

  • Bring the performance of the system to the optimum level
  • Make the system fault tolerant in high-end deployments

Team

  • Dinusha Kumarasiri
  • Hasitha Liyanage

Strategies/Tactics

Load Testing/Stress Testing

Load Testing is the process of overloading the system with a large amount of related data and monitoring the outcome.with regard to the SAHANA system, we overload the system with bulk data using several php scripts and monitor the outcome using ADOdb features.

With regard to SAHANA system, we provide Stress Testing by creating a large number of concurrent user accesses to the system.For this process 3rd party tools will be incorporated

Optimizing the Performance

Identify and implement all possible ways of increasing the performance of the system

Scalability SWAT

Objective

  • Verify the stability of the overloaded system
  • Overload the system and try to realize hidden bugs in functionality perspective
  • Overload the system and try to realize hidden bugs in usability perspective

Approach

Load Testing

  • php scripts will be used to overload the system with bulk data for each transaction

Stress Testing

  • try to establish a large amount of concurrent accesses to the system
  • 3rd party tools will be used to generate concurrent connections
  • currently focusing on WebLoad (http://www.webload.org/)
  • Generated reports will be used to measure the success

Performance SWAT

Objective

  • Identify the ways of increasing the performance without compromising on the functionality

Approach

Examine include files

  • verify all include files for a particular code are really required
  • verify include files are actually exist in the system

Profiling

Profiling is the investigation of a program's behavior using information gathered as the program runs.

the objective is to detect bottlenecks of the given code. 3rd party tools will be used to carry out a profiling exercise

Examine the efficiency of database queries

  • try to establish more efficient/effective alternative queries

Examine the no of queries used to implement a transaction

  • try to minimize the number of queries
  • are those queries really required ?
  • use ADOdb bulk insert options to insert multiple records to same table to gain an I/O edge

The following example would illustrate the usage of bulk insert using ADOdb layer

$arr = array(
	array($org_id,'pmob',$contact_mobile),
	array($org_id,'name',$contact_name),
	array($org_id,'fax',$contact_fax)
	);
$ok = $db->Execute('insert into contact (pgoc_uuid,opt_contact_type,contact_value) values (?,?,?)',$arr);

Examine the way loops and conditional statements are implemented

  • try to increase efficiency by implementing in the most efficient way

Implement Database level caching

  • use ADOdb caching library to implement database level caching

Implement Application level caching

Make the system cluster ready


Navigation
QR Code
QR Code swat:performance (generated for current page)