Why Should You Monitor User Statistics?

Why Should You Monitor User Statistics?

Making sure you understand the impact of user behavior and the statistics associated with that is an important part of running any successful website. Click the button below to learn more about why website statistics are important.

Read More

About StatsNet

StatsNet is a informational collaborative established by a variety of people, including Mathematicians, Developers, and Designers. Our goal is to help people understand how things can come together through the […]

Read More
How Statistics Can Help You

If you’ve got a website or web application, you should be monitoring the statistics associated with your user behavior. You should also be monitoring the statistics associated with your website uptime, […]

Read More
About StatsNet

StatsNet is a informational collaborative established by a variety of people, including Mathematicians, Developers, and Designers. Our goal is to help people understand how things can come together through the […]

Read More
How Statistics Can Help You

If you’ve got a website or web application, you should be monitoring the statistics associated with your user behavior. You should also be monitoring the statistics associated with your website uptime, […]

Read More
About StatsNet

StatsNet is a informational collaborative established by a variety of people, including Mathematicians, Developers, and Designers. Our goal is to help people understand how things can come together through the […]

Read More

From the Blog

Apache JMeter – How to Use it to Test Nonprofit Websites

There are many load testing tools out there but ApacheJMeter is one the most reliable tools, you are ever going to use for load testing as it provides a variety of services and mainly focus on web applications.

It is projected by Apache Software Foundation and supports a variety of reports, configuration variables, response validation, per-thread cookies and variable parameterization.

It is an open source desktop Java application and is used to give load to various scenarios and performances related to the output data in different ways such as XML files, CSV files and graphs.

In order to use Apache JMeter to carry out load testing on web server you need to follow these steps:

You will need:

  • A computer which is able to run JMeter
  • Web server to load test

In order to run the load make sure your production servers are able to survive the load, otherwise the performance of your server will be badly impacted.

You will also need to take into account that various factors play a role in impacting JMeter test results such as system resources and web servers available to the network and JMeter and being tested respectively.

In order to increase the size of the load the JMeter is able to generate without any errors you can either:

  • Increase the load by using non-graphical mode for running the tests
  • Distribute the load to multiple JMeter servers.

It’s also important to prepare your server for load testing. For example, if you’re using a shared server or are using some type of web hosting for nonprofits, you should take the time to make sure that your host can actually handle the load testing. Sometimes having a nonprofit website with lower-tier hosting means that you’re put on a smaller server that can’t handle the load test, although this isn’t always the case.

STEP 1: Installation of JMeter:

JMeter is relatively easy to install. You can either install it by downloading and archiving the JMeter binaries from their official site and installing Java or you can use a package manager such as Homebrew or apt-get.

In order for JMeter to locate Java and key tool binaries, you will need to add the Java bin directory to the PATH, but it solely depends on how you install Java.

Once the JMeter is installed and is being run, you need to build a test plan.

STEP 2: Formation of Test Plan:

Once you have opened the JMeter, you are able to see GUI with an empty Test Plan.

A Test Plan is basically used in determining how the website load test is going to stimulate as it comprises of test components sequence.

STEP 3: Addition of the Thread Group:

You need to add the Thread Group to Test Plan.

  • Right click on Test Plan
  • Move the cursor to Add
  • Move the cursor to Threads (Users)
  • Click on the Thread Group

You need to know that the thread group has three important properties which generally impact the load test. These are:

  1. Number of threads (Users):

JMeter will use this respective quantity in order to simulate the number of users that you are going to type.

  1. Ramp up period (in seconds):

Time required by the JMeter for distributing the start of the threads over.

  1. Loop count:

How many times do you want to execute the test is determined by the loop count.

STEP 4: Addition of HTTP Requests Defaults:

The default configuration element of HTTP is used to adjust default values for HTTP Requests in the test plan.

This is particularly useful if you want to send a number of HTTP requests to the same server as a part of the test.

For adding HTTP Request Default to Thread group you need to:

  • Select Thread Group and then right click it.
  • Move the cursor to Add
  • Move the cursor to Config Element.
  • Click on HTTP Request Defaults.

Under the Web Server section, in HTTP Request Default, type in the server name or IP address of the server you want to test. This will make the server act as a default server for the remaining items in the thread group.

By adding HTTP Cookie Manager to the Thread Group, you are able to support your web server in using the cookies. You can add HTTP cookie manager by:

  • Selecting thread group and right clicking it.
  • Moving the cursor to Add.
  • Moving the cursor to config element.
  • Clicking on HTTP cookie manager.

STEP 5: Addition of HTTP Request Sampler:

HTTP Request Sampler is used for representing a page request that will be accessed by each thread or user.

In order to add HTTP request sampler to the thread group:

  • Select the Thread Group and right click it.
  • Move the cursor to Add.
  • Move the cursor to Sampler
  • Click on HTTP Request.

Fill in the Path with the item you want each thread to use. The path is located in the HTTP request which is below the HTTP request section.

Set the item to / in order to let the thread access the homepage of the server.

If you want to add more requests, you can repeat this step.

STEP 6: Addition of View Results in Table Listener:

Listeners are basically used to execute the result of the load test in JMeter. A variety of listeners already exists and more can be added by installing plugins.

For using the table because it is the easiest to read you need to:

  • Select the Thread Group and right click it.
  • Move the cursor to Add
  • Move the cursor to Listener
  • Click on view results in the table.

STEP 7: Running the Test Plan:

After setting up your test plan it is time to run it and execute the results.

  • Save the test plan by clicking on file.
  • Click on save and point out the desired file name.
  • Select view results in table located in the left pane
  • Click run in the main menu and click start.
  • You will be able to see the test result in the form of a table.

STEP 8: Interpretation of results:

After performing the test, you will notice in the table that the status of all the requests is success which is shown by green triangles and a checkmark in it.

You need to notice two there things as well:

  1. Latency time: the time between sending of the request by the JMeter and receiving of the initial response.
  2. Sample time: the time required by the server to serve the request completely. (In milliseconds).

STEP 9: Increasing the load:

You can increase the load by changing the number of threads in the thread group as described in the third step.

When the number of threads is increased you will notice a change in sample time as well, now it will take seconds to serve the results instead of milliseconds which show that the system has started to become overburdened by the request. In order to meet the needs of more threads you need to:

  1. Increase the CPU
  2. Optimize the ever setup to use less CPU.

You can do this by logging in to the VPS and quick checking the resource usage during the test.

  • Log in to the web server via SSH.
  • Run top. You will see that CPU % user usage % is very low and CPU % idle will be more than 99%.
  • Start the test again in JMeter and log back into the SSH session of your web server. You will notice a rise in CPU % user usage and decrease in CPU % idle.

JMeter is an essential tool in setting up your web server and improving it. It also helps in the removal of bottlenecks and makes the web server perform efficiently.

Read More →

Tips on Developing Your Web Applications

The cornerstone of keeping your Exchange servers running as smoothly as possible is to establish a configuration that works with how the servers maintain their functionality. While there are many variables that determine the overall success of your Microsoft Exchange Servers, the following tips are designed to be implemented across all platforms for optimum performance.

Configure Database Maintenance Frequency and Duties

Throughout every working day, the Information Store within your Exchange Server is bombarded with activity and data. As time progresses, these transactions can destroy the speed and functionality of a database. Thankfully, Microsoft Exchange was designed to run maintenance each night to eliminate unnecessary data, which ensures your email client runs at optimum performance levels. While there are different variables that go into this configuration, the following should be implemented for all Exchange Servers:

  • Tombstone Maintenance on all public folders and in all user mailboxes
  • Deletion of expired messages from public folders and from the “Trash” file within each user account
  • Automatic deletion of messages found in public folders that are more than 180 days old (unless certain rules were attached to the specific messages)
  • Daily server updates for public folders
  • Removing duplicate folders
  • Fine-tuning deleted mailboxes and its associated folders
  • Fine-tuning message conflicts

Configure Free Space

As your Exchange Server completes its nightly maintenance, deleted folders and files leave what’s known as “free space.” While this removes the actual files and folders, it does not consolidate the size of the database. Instead, there’s a virtual “hole” left in its spot, which can significantly reduce the functionality of your servers. While this may not alter the performance of all servers, it’s a good idea to configure free space on a quarterly basis. Establish a monitoring solution that alerts administrators if this “free space” consumes over 15% of your overall database storage.

Configure Database Growth Alerts

Perhaps the easiest way to configure your Exchange Server so it continually operates in the most efficient manner is to configure alerts that monitor the growth of your database. You should strive to check the growth rate of each database on a monthly basis to prevent accidentally exceeding your set limits, which can cause downtime in email availability. There are many techniques you can implement when configuring this monitoring solution. The best of these is dependent on the overall usage rates of each mailbox. Because Exchange is technically a web application, it might be worthwhile to explore various real time web application monitoring options so that you can keep tabs on your Exchange server without having to manually check.

Configure Nondelivery Reports

Sometimes, an email can get “stuck” in the queue of your server. This can create many issues. First, it takes up unnecessary space within your database, which can result in sluggish response times. Secondly, if this was an important message, you could lose the trust of a customer or vital information for a specific employee or department could become lost. Eliminate this scenario by configuring automatic Nondelivery Reports, or NDR messages, for the emails that have become stuck in the Exchange Server queue.

Read More →

Ideas for Creating a Service Level Agreement

Computer systems and digital delivery of services is a scary situation for many businesses. Because of the vast amount of variables that go into the digital infrastructure of how you deliver and handle services and/or products, there are many elements that are out of your control. Service Level Agreements work to establish expectations regarding communication, services and responsibilities for both the business and the customer. While the final SLA you implement is dependent on your specific business, there are several universal tips all businesses should follow when establishing an SLA.

Well-Developed Communication Methodologies

The terms outlined in your Service Level Agreement determine the level of communication that’s expected between you and your customers. These topics are set in place to effectively outline how communication operates for better responses. While communication methods vary based upon your business, it’s within this section that you lay out all details regarding the steps for specific types of communication, such as technical support, complaints or general communications.

Defined Levels of Service

In the most general sense, Service Level Agreements define the levels of service a customer can expect when dealing with your business. It’s important to keep in mind that these levels of service are not solely for the products or services you’re offering, but the entire level of service a customer can expect, which includes how the customer will be supported should an issue arise. The most important element to remember about this section is to set forth proactive provisions to streamline the understanding of the relationship between your company and your customers.

Availability of Services

Also referred to as your service uptime, this section clearly defines the expectations a customer may have when it comes to determining the availability of your service. This is an especially vital section for those who offer digital services, such as Internet Service Providers or application providers. Within this section, you must describe what you defined as regular and emergency outages, the frequency of scheduled maintenance and the notification process when it comes to scheduled outages due to maintenance. The most important element to remember when dealing with this section is to establish a provision, or metric, that you can realistically meet. While 99.9% uptime sounds wonderful, if you’re unable to provide this amount of availability, then you’ll soon be staring at a host of angry emails and support tickets.

Enforcement of Service Levels

How will your business enforce the levels of service you’ve detailed in your SLA? Identifying these levels of service and how they will be implemented and monitored is essential to prevent misunderstandings or unrealistic expectations from the customer. Elements to cover within this section include how data is recorded and reported, how conflicts are handled and how communications regarding service outages are laid out.

Read More →

Should Your Business Virtualize Your Web Applications?

In the most general sense, virtualizing your Microsoft Exchange Server allows you the freedom to run separate servers on a single machine. While there are many different reasons why a business would want to integrate virtualization within your Microsoft Exchange Server, the most important element to consider is determining whether or not virtualization is right for you is by reviewing the various factors associated with this hosting technique.

Is Your Hardware Compatible?

Before delving into the specifics of hardware virtualization for Microsoft Exchange Servers, it’s essential that you understand the requirements for virtualization. As of 2014, the requirements for Exchange virtualization include:

  • Any version of Windows Server that features Microsoft Hyper-V Server or Hyper-V Technology.
  • Installation of a third-party hypervisor that’s been validated using the Validation Program by Windows Server Virtualization
  • Guest virtual machines must run Exchange 2013 (or newer)
  • Guest virtual machines much be deployed on Windows Server 2008 RS SP1
  • Host machine running virtualization hardware must feature at least 10GB of free space; however, additional storage capacity is needed to support paging files, management software and dump (crash recovery) files.

Why Choose Virtualization for Microsoft Exchange Server

While there are many reasons why you should consider virtualizing your Microsoft Exchange Server, the exact reason why you may choose to implement this technology depends on your specific business communication goals. Even though these goals are dependent on your specific circumstance, the following reasons are universal benefits of virtualizing Microsoft Exchange:

  • Effective Hardware Utilization – In the most general sense, virtualization allows your company to better utilize your existing hardware as you’re able to consolidate a host of services on fewer physical servers. By being able to place Exchange with other virtualized applications on a single server, you’re able to save on rack-space, cooling and power within your data center. In fact, the amount of saving has made virtualization the ideal technique for those looking to “go green” with their IT services.
  • Faster Data Recovery – Should a disaster happen to your database, such as physical hardware damage or internal file corruption, Servers that are hosted in a virtualized environment provide a streamlined way to access backed up files and folders. This is an essential feature that may mean the difference between successfully restoring the functionality of your business or being left with years of lost data.

Flexible Testing Environment – Perhaps one of the most important reasons why you should consider virtualizing your Microsoft Exchange Server is to have a powerful, yet flexible, testing environment for applications. Virtualization allows administrators to easily remove or add severs without having to worry about altering the functionality of existing environments. If you’re looking to automatically test your web apps, you should be using a program that can monitor your server and apps. There are a variety of web application monitoring tools available to accomplish this task. One site that I like to look at is WebApplicationMonitoring.net, as they have a nice breakdown of the most popular solutions.

Read More →

Essential Steps When Establishing an SLA

Service Level Agreements are an excellent way to improve the communication, expectations and responsibilities between two or more parties. While this is a powerful tool, if it’s improperly established it will do nothing to streamline the communication and relationship between the customer and business. To help streamline this process and provide an SLA that legal and thorough, there are four essential steps you must follow.

Step One – Collect Background Information

Before an SLA can be implemented, both parties must collect information to provide equal grounds when it comes to negotiations. If you’re not establishing an SLA for a specific interaction, but rather an overall list of expectations and responsibilities for a general service, you’ll still need to gather vital information to construct a thorough Service Level Agreement. For example, a business should examine their service history to help determine the realistic level of service they can provide each customer. Additionally, business must study the expectations of customers to create a baseline of performance metrics that are reasonably met.

Step Two – Solidify a Means of SLA Agreement 

This is one of the most important elements of a Service Level Agreement as it determines exactly how a customer and business agree to its terms. In most cases, the agreement is sent along with order information, and if the payment is confirmed, then the customer agrees to the SLA terms. However, the exact method may differ based upon the level of service you provide. Regardless of how this agreeing method is implemented, it must be clear and concise to prevent confusion and misunderstandings.

Step Three – Establish Relationship Expectations

The purpose of a Service Level Agreement is to provide a set of standards when it comes to the actual relationship between a customer and the business. While this is one of the most vital sections of an SLA, it’s often one of the most overlooked. Topics covered within this section discuss the expectations for both the customer and the business. For example, it outlines the level of responsibilities for both parties, which may include: scheduling meetings, implementing the service and developmental tasks. Of course, the levels of this relationship vary based upon the service and/or product you’re offering.

Step Four – Complete Pre-Implementation Processes

Many times, an SLA features topics regarding reporting methods and how information is handled. Therefore, before an SLA can go live, the necessary tasks associated with this agreement must be shelled out. For example, your business may need to establish how reporting is done, create tracking applications and creating specific procedures regarding how each clause of the agreement is implemented.

Read More →