Skip to content

Commit

Permalink
Base Accounting performance tests
Browse files Browse the repository at this point in the history
Closes #100
  • Loading branch information
ammendonca committed Jul 26, 2017
1 parent 3944141 commit f493572
Show file tree
Hide file tree
Showing 13 changed files with 17,661 additions and 0 deletions.
1 change: 1 addition & 0 deletions testsuite/performance/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/bin/
180 changes: 180 additions & 0 deletions testsuite/performance/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>

<parent>
<groupId>org.mobicents.diameter</groupId>
<artifactId>diameter-parent</artifactId>
<version>1.7.0-SNAPSHOT</version>
</parent>

<groupId>org.restcomm.diameter.server.base.accounting</groupId>
<artifactId>base-accounting-server</artifactId>
<version>1.0.0-SNAPSHOT</version>

<name>Restcomm :: Examples :: ${project.artifactId}</name>

<properties>
<!-- Mobicents Diameter Components Versions -->
<restcomm.diameter.jdiameter.version>1.7.0-SNAPSHOT</restcomm.diameter.jdiameter.version>
<restcomm.diameter.mux.version>1.7.0-SNAPSHOT</restcomm.diameter.mux.version>
<!-- Thirdparty Dependencies Versions -->
<slf4j.version>1.5.8</slf4j.version>
<jbosscache.version>3.2.5.GA</jbosscache.version>
<commons-pool.version>1.5.5</commons-pool.version>
</properties>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.cache</groupId>
<artifactId>jbosscache-core</artifactId>
<version>${jbosscache.version}</version>
</dependency>
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>${commons-pool.version}</version>
</dependency>
</dependencies>
</dependencyManagement>

<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
<dependency>
<groupId>org.jboss.cache</groupId>
<artifactId>jbosscache-core</artifactId>
</dependency>
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
</dependency>
<dependency>
<groupId>org.mobicents.diameter</groupId>
<artifactId>jdiameter-api</artifactId>
<version>${restcomm.diameter.jdiameter.version}</version>
</dependency>
<dependency>
<groupId>org.mobicents.diameter</groupId>
<artifactId>jdiameter-impl</artifactId>
<version>${restcomm.diameter.jdiameter.version}</version>
</dependency>
<dependency>
<groupId>org.mobicents.diameter</groupId>
<artifactId>restcomm-diameter-mux-jar</artifactId>
<version>${restcomm.diameter.mux.version}</version>
</dependency>
</dependencies>

<profiles>
<profile>
<id>maven-release</id>
<modules>
<!-- any module not bound to default modules, such as the ones for test, release, etc... -->
</modules>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<autoVersionSubmodules>true</autoVersionSubmodules>
<resume>false</resume>
</configuration>
</plugin>
</plugins>
</build>
</profile>

<profile>
<id>release</id>
<build />
</profile>
</profiles>

<build>
<finalName>restcomm-${project.artifactId}-b${buildNumber}</finalName>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<configuration>
<format>{0,date,yyyyMMdd.HHmm}</format>
<items>
<item>timestamp</item>
</items>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>src/main/assembly/standalone.xml</descriptor>
</descriptors>
<archive>
<manifest>
<addClasspath>false</addClasspath>
<!--classpathPrefix>lib/</classpathPrefix-->
<mainClass>org.restcomm.diameter.base.accounting.BaseAccountingServer</mainClass>
</manifest>
<manifestEntries>
<Class-Path>config/</Class-Path>
</manifestEntries>
</archive>
</configuration>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-eclipse-plugin</artifactId>
<groupId>org.mobicents.tools</groupId>
<inherited>false</inherited>
<executions />
<configuration>
<eclipseProjectName>${project.artifactId}</eclipseProjectName>
<generateProjectsForModules>false</generateProjectsForModules>
</configuration>
</plugin>
</plugins>
</build>

<scm>
<connection>scm:git:https://github.com/restcomm/jdiameter.git</connection>
<developerConnection>scm:git:[email protected]:restcomm/jdiameter.git</developerConnection>
<url>https://github.com/restcomm/jdiameter</url>
</scm>

</project>
80 changes: 80 additions & 0 deletions testsuite/performance/seagull/config/config-client.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
<!--
TeleStax, Open Source Cloud Communications
Copyright 2017, TeleStax Inc. and individual contributors
by the @authors tag.
This program is free software: you can redistribute it and/or modify
under the terms of the GNU Affero General Public License as
published by the Free Software Foundation; either version 3 of
the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>
-->

<?xml version="1.0" encoding="ISO-8859-1"?>
<configuration name="Simple IP Client Conf">

<define entity="transport"
name="trans-1"
file="libtrans_ip.so"
create_function="create_cipio_instance"
delete_function="delete_cipio_instance"
init-args="type=tcp">
</define>

<define entity="channel"
name="channel-1"
protocol="diameter-v1"
transport="trans-1"
open-args="mode=client;dest=127.0.0.1:3868">
</define>

<define entity="traffic-param" name="call-rate" value="1"></define>
<define entity="traffic-param" name="call-timeout-ms" value="5000"></define>
<define entity="traffic-param" name="number-calls" value="1000"></define>

<define entity="traffic-param" name="display-period" value="1"></define>
<define entity="traffic-param" name="display-scenario-stat" value="true"></define>
<define entity="traffic-param" name="display-protocol-stat" value="true"></define>

<define entity="traffic-param" name="log-stat-period" value="10"></define>
<define entity="traffic-param" name="log-stat-file" value="logs/client-stat.csv"></define>

<define entity="traffic-param" name="log-protocol-stat-period" value="60"></define>
<define entity="traffic-param" name="log-protocol-stat-name" value="all"></define>
<define entity="traffic-param" name="log-protocol-stat-file" value="logs/client-protocol-stat.csv"></define>

<define entity="traffic-param" name="data-log-period" value="1"></define>
<define entity="traffic-param" name="data-log-number" value="1000"></define>
<define entity="traffic-param" name="data-log-file" value="logs/client-rtt.csv"></define>
<define entity="traffic-param" name="data-log-rtdistrib" value="3000"></define>

<!--
Tuning parameters
max-send/receive defines the maximum sent/received messages in a scheduling loop (it is currently computed)
max-simultaneous-calls defines the maximum number of simultaneous calls that can be placed (requires more memory)
-->
<define entity="traffic-param" name="max-send" value="100000"></define>
<define entity="traffic-param" name="max-receive" value="100000"></define>
<define entity="traffic-param" name="max-simultaneous-calls" value="5000000"></define>

<!--
Statistics
response-time-repartition define the intervals in which the response time measures are going to be spreaded
-->
<define entity="traffic-param" name="response-time-repartition" value="5,10,15,20,30,40,50,75,100,150,200,250,300,400,500,1000"></define>

<!--
Defines the value of the timer set when listening to the system, waiting for the messages. Counter in milliseconds.
For low call-rate, set a value at least lower than the smallest "wait" in the scenario.
Be careful, the lower the value, the more CPU time will used.
-->
<define entity="traffic-param" name="select-timeout-ms" value="5"></define>

</configuration>
Loading

0 comments on commit f493572

Please sign in to comment.