Anuket Project

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 15 Next »

Host:

OS: Ubuntu 16.04

Disable apparmor 

$ /etc/init.d/apparmor stop
$ /etc/init.d/apparmor teardown
$ update-rc.d -f apparmor remove

 

Isolate 2 cores from the OS by modifying: /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="text isolcpus=10,11"

 

Update grub:

$ sudo update-grub

 

Reboot

Install barometer build-essentials:

$ git clone https://gerrit.opnfv.org/gerrit/barometer
$ ./src/install_build_deps.sh

 

Install virtualization packages and other required packages:

$ sudo apt install qemu-kvm libvirt-bin virtinst virt-manager screen

 

Add the user to the libvirtd group:

sudo adduser $USER libvirtd

 

Create a dir to store ISOs

$ sudo mkdir /usr/local/src/images/
$ cd /usr/local/src/images/
$ sudo -E wget http://releases.ubuntu.com/16.04/ubuntu-16.04.2-server-i386.iso


Ceate a Test VM

$ sudo virt-install -n test -r 256 --disk path=/var/lib/libvirt/images/test.img,bus=virtio,size=4 -c /usr/local/src/images/ubuntu-16.04.2-server-i386.iso --network network=default,model=virtio --graphics vnc,listen=0.0.0.0 --noautoconsole -v

 

Connect to the console to complete the installation process.

 

Clone the latest libvirt code, build and install collectd:

$ git clone https://github.com/maryamtahhan/collectd.git mt_collectd
$ cd mt_collectd
$ ./build.sh
$ ./configure

 

Check that the virt plugin is configured:

 virt  . . . . . . . . yes

 

Install collectd:

$ sudo make -j install


 Install collectd as a service:

sudo mv systemd.collectd.service collectd.service
sudo chmod +x collectd.service
vi collectd.service

 

Edit the collectd.service script

[Service]#ExecStart=/usr/sbin/collectd
ExecStart=/opt/collectd/sbin/collectd -C /opt/collectd/etc/collectd.conf
#EnvironmentFile=-/etc/sysconfig/collectd
#EnvironmentFile=-/etc/default/collectd
ProtectSystem=full
ProtectHome=true

 

Modify the /opt/collectd/etc/collectd.conf file

<LoadPlugin cpu>
  Interval 1
</LoadPlugin>


<LoadPlugin virt>
  Interval 1
</LoadPlugin>


LoadPlugin csv
 
LoadPlugin network


<Plugin cpu>
 ReportByCpu true
 ReportByState false
 ValuesPercentage true
</Plugin>

<Plugin csv>
 DataDir "/tmp/collectd/csv"
# StoreRates false
</Plugin>

<Plugin network>
        # server setup:
        Listen "<host ip address>" "28597"
        <Listen "<host ip address>" "28597">
        </Listen>
</Plugin>


 
<Plugin virt>
 Connection "qemu:///system"
# RefreshInterval 60
# Domain "name"
# BlockDevice "name:device"
# BlockDeviceFormat target
# BlockDeviceFormatBasename false
# InterfaceDevice "name:device"
# IgnoreSelected false
 HostnameFormat uuid
# InterfaceFormat name
# PluginInstanceFormat name
 Instances 1
 ExtraStats "disk pcpu"
</Plugin>

 

Core 10 and 11 were isolated from the OS using the isolcpus argument to grub command line and using virsh to Pin the vCPUs to those cores:

$ virsh vcpupin test 0 10
$ virsh vcpupin test 1 11
 
Guest

OS: Ubuntu 16.04.2 LTS

Install collectd and stress

$ sudo apt install collectd stress stress-ng

 

configure /etc/collectd/collectd.conf

Hostname "ubuntu_vm"

<LoadPlugin cpu>
  Interval 1
</LoadPlugin>

LoadPlugin network
 
<Plugin cpu>
        ReportByCpu true
        ReportByState false
        ValuesPercentage false
</Plugin>

<Plugin network>
#       # client setup:
        Server "<HOST IP>" "28597"
        <Server "<HOST IP>" "28597">
        </Server>
</Plugin> 

 

Check the uptime on the host 

$ uptime
12:20:22 up 5 days, 2:29, 5 users, load average: 0.84, 0.79, 0.62

and the guest before running any workloads

$ uptime
12:21:27 up 9 min, 2 users, load average: 1.13, 1.89, 1.41

  • No labels