Monday, 24 March 2014

Progress so far

I've managed to find a few programs to help me write up my benchmark/stress testing.

They are Stress (for stress testing), CpuLimit (to limit the amount of CPU used by a process), and netperf (to test bandwidth usage).

Stress appears to be very appropriate as it is cable to stress test CPU (and multiple cores if needed), memory, and HDD read/write speeds. Combine it with CPULimit, and I may be able to control the majority of the resources needed.

The Topic Proposal is due this Friday. I have already discussed with Javid about the schedule/plan for the year. I will have to use something like Microsoft Project to make a good looking Gantt Chart.

Thursday, 13 March 2014

This weekend I will work on my on project. (These past 2 weeks I have been finishing off my internship at Arrobyte, so I've been quite busy).

The purpose of this project is to attempt to quantify the performance degradation of VMs according to their own loads as well as neighbouring VMs using shared resources on the same physical machine.

I talked with Javid on Wednesday, 5th of March. 

In order to do this project, Javid has set up a VM on the SIT servers for me, using VMWare vSphere. I have full control over this VM. Currently this VM has 2 virtual CPU's of 2GHz each, 2GB of RAM, and Disk I/O speed capable of 2GB/s. The VM is running Ubuntu 12.04. I can change how much resources my VM uses, however this should be enough to start off.

What I need to do for this project overall is to write a program that utilises the VM resources in a controlled way. The program should be able to be called upon in the command line, and must be able to change the utilisation of CPU, memory, HDD read, HDD write, bandwidth in and bandwidth out.

This program will be used on multiple VM's to test the performance degradation.

My main focus for today will be researching benchmarks and finding looking through their source codes for utilisation of CPU and memory. Javid mentioned that Disk I/O and bandwidth utilisation will be a bit more complicated to setup, so those will worked on later.

The program itself should be written in C or C++.

Some tips Javid gave me on the benchmarks:
1) CPU benchmarks may involve calculations, like multiplying numbers.
2) Memory benchmarks should use malloc.
3) Network benchmarks should utilise a FTP server to download and upload files.
4) Disk I/O benchmarks may involve moving a large file from one drive to another.

Monday, 10 March 2014

The start of my blog about my 2014 Engineering Project.