iperf test

Linux Systems Guides
  • iPerf3 from iPerf.fr:

    • iPerf3 is a tool for active measurements of the maximum achievable bandwidth on IP networks. It supports tuning of various parameters related to timing, buffers and protocols (TCP, UDP, SCTP with IPv4 and IPv6).

    • For each test it reports the bandwidth, loss, and other parameters. This is a new implementation that shares no code with the original iPerf and also is not backwards compatible.

    • iPerf was orginally developed by NLANR/DAST. iPerf3 is principally developed by ESnet / Lawrence Berkeley National Laboratory. It is released under a three-clause BSD license.

    Install iperf Debian

    apt-get install iperf3
    

    Starting a local server is not necessary if testing to a remote server.

    Example test server:

    iperf -c ping.online.net -i 2 -t 20 -r
    

    Start iperf server

    To start Iperf in server mode, use the below command.

    iperf -s
    

    Start server in daemon mode

    Running the server without daemon mode keeps the process running in the terminal. Use the -D switch to run it as a daemon in the background.

    iperf -s -D
    

    Connecting to server from client

    Iperf needs to run on the local host in client mode, as well as in server mode on the remote host. To connect to the remote host, add it’s IP address after the -c switch.

    iperf -c <ip or host/domain name>
    

    Bi-directional simultaneous (test the speed both ways at the same time)

    Use the -d switch to test in the network bandwidth in both directions. This will perform two tests; one from local host to remote host, and another from the remote host to the local host.

    iperf -c <ip or host/domain name> -d
    

    Bi-directional testing (test the speed both one after another)

    Use the -r switch to test in the network bandwidth in both directions. This is similar to -d except the tests will be performed in sequence; first from local host to remote host, and another from the remote host to the local host.

    iperf -c <ip or host/domain name> -r
    

    Change the window size

    The TCP window size can be changed using the -w switch followed by the number of bytes to use. the below example shows a window size of 2KB. This can be used on either the server or the client.

    iperf -c <ip or host/domain name> -w 2048
    
    iperf -s -w 2048
    

    Change the port

    You must use the same port on both the client and the server for the two processes to communicate with each other. Use the -p switch followed by the port number to use on both the local and remote host.

    iperf -c <ip or host/domain name> -p 9000
    
    iperf -s -p 9000
    

    Change the test duration

    The default test duration of Iperf is 10 seconds. You can override the default with the -t switch followed by the time in seconds the test should last.

    iperf -s -t 60
    

    UDP instead of TCP

    The default protocol for Iperf to use is TCP. You can change this to UDP with the -u switch. You will need to run both the client and server in UDP mode to perform the tests.

    iperf -s -u
    iperf -c -u
    

    The result will have an extra metric for the packet loss which should be as low as possible, otherwise the packets will have to be re-transmitted using more bandwidth.


    Run multiple threads

    Iperf can spawn multiple threads to simultaneously send and receive data. Use the -P switch followed by the number of threads to use.

    iperf -c -P 4
    

    Check the version of Iperf

    Use the -v switch to see the version of Iperf you have installed.

    iperf -v
    

    See the full list of arguments

    Use the -h switch to see the full list of arguments supported by Iperf.

    iperf -h
    

    A nice list of iPerf servers can be found at iPerf.fr

  • rickR

    Re: Set script to executable

    755 - Owner has all permissions, and Group and Other can read and execute 700 - Owner has all permissions 644 - Owner can read and write, and Group and Other can read 600 - Owner can read and write 775 - Owner can read and write, and Group and Other can read 770 - Owner and Group have all, and Other can read and execute 750 - Owner has all permissions, and Group can read and execute 664 - Owner and Group can read and write, and Other can just read 660 - Owner and Group can read and write 640 - Owner can read and write, and Group can read
    read more

  • rickR

    Re: Find or Locate a file or extension command line

    Install locate command linux: Use your sudo command!

    apt install mlocate

    OR:

    apt-get install mlocate

    OR:

    yum install mlocate

    Update the database:

    updatedb

    Depending on the size of the complete filesystem this could take a few minutes

    After the database has been populated:

    locate mariadb

    Where mariadb is the word your looking for

    read more

  • rickR

    These commands are if you are in the scripts directory! Changing permissions can be done from anywhere in the structure.

    Such as :

    chmod +x /opt/so-elastic-agent_linux_amd64

    Terminal chmod to executable :

    Permissions prior to chmod : chmod.png

    chmod +x so-elastic-agent_linux_amd64

    Permissions following chmod : chmod-x.png

    Then execute :

    ./so-elastic-agent_linux_amd64

    Insure you are acting as the user you just gave permissions to (the file owner) or at least have sudo privileges

    To make the script un-executable:

    chmod -x so-elastic-agent_linux_amd64
    read more

  • rickR
    sudo apt install lsb-release ca-certificates curl -y

    GPG key and repo for php 7.4

    sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'

    Update the system with the new repository in place

    sudo apt update

    Install the dependencies for OwnCloud (LAMP ect) Certbot, or LetsEncrypt is being installed as well, if you are using this installation in a public domain

    sudo apt install apache2 mariadb-server imagemagick certbot python3-certbot-apache smbclient redis-server unzip rsync libapache2-mod-php7.4 php7.4 php7.4-intl php7.4-mysql php7.4-mbstring php7.4-imagick php7.4-igbinary php7.4-gmp php7.4-bcmath php7.4-curl php7.4-gd php7.4-zip php7.4-imap php7.4-ldap php7.4-bz2 php7.4-ssh2 php7.4-common php7.4-json php7.4-xml php7.4-dev php7.4-apcu php7.4-redis libsmbclient-dev php-pear php-phpseclib

    Enable apache2 and then verify it’s status

    sudo systemctl is-enabled apache2 sudo systemctl status apache2

    oc-apache.png Enable MariaDB and verify status

    sudo systemctl is-enabled mariadb sudo systemctl status mariadb

    oc-maria.png Enable Redis and verify status

    sudo systemctl is-enabled redis sudo systemctl status redis

    oc-redis.png

    Configure default php version

    sudo update-alternatives --config php

    oc-php-alternatives.png oc-php-ver.png

    Configure php OwnCloud dependencies

    sudo update-alternatives --set phar /usr/bin/phar7.4 sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.4 sudo update-alternatives --set phpize /usr/bin/phpize7.4 sudo update-alternatives --set php-config /usr/bin/php-config7.4

    Upgrade Pear to OwnCloud4 requirements

    sudo mkdir -p /tmp/pear/cache sudo pear upgrade --force --alldeps http://pear.php.net/get/PEAR-1.10.13

    oc-pear-up.png

    sudo pear clear-cache sudo pear update-channels sudo pear upgrade --force sudo pear upgrade-all

    Verify Pear version

    pear version

    oc-pear-ver.png

    Configure MariaDB

    sudo mariadb-secure-installation

    oc-mariadb-setup.png

    Log into MariaDB

    sudo mariadb -u root -p

    Create the OwnCloud database:

    This is where many go wrong, we do not use ‘password’ we replace password, with our own password.

    CREATE DATABASE owncloud;

    We just created a database with the name owncloud

    CREATE USER IF NOT EXISTS 'owncloud'@'localhost' IDENTIFIED BY 'password';

    We just created a database user called owncloud

    GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud'@'localhost' WITH GRANT OPTION;

    We just allowed user owncloud, full privileges on database owncloud

    FLUSH PRIVILEGES;

    Now verify what we have just done:

    SHOW GRANTS FOR 'owncloud'@'localhost';

    You can see below I named this database ‘oc’ and the ‘oc’ user has privileges on database ‘owncloud’

    oc-db-priv.png

    quit;

    wget the OwnCloud source

    cd /var/www wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2

    Grab sha256 to verify the download

    wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2.sha256

    BEFORE installing, verify if the download of OwnCloud matches what the OwnCloud team wanted you to have, this is important always.

    sudo sha256sum -c owncloud-complete-latest.tar.bz2.sha256 < owncloud-complete-latest.tar.bz2

    Out put should say ‘OK’ if everything matches.

    Change ownership of the directory to www-data user.

    sudo chown -R www-data:www-data /var/www/owncloud

    Configure Vhost for OwnCloud

    This will open a new file in 'sites-available and name this file ‘owncloud.conf’

    Change the ServerName and ServerAlias, as well as log file names, to whatever your domain is. There are many ways to do this keep in mind.

    sudo nano /etc/apache2/sites-available/owncloud.conf <VirtualHost *:80> ServerName oc ServerAlias www.oc DocumentRoot /var/www/owncloud ErrorLog ${APACHE_LOG_DIR}/oc.io-error.log CustomLog ${APACHE_LOG_DIR}/oc.io-access.log combined Alias /owncloud "/var/www/owncloud/" <Directory /var/www/owncloud/> Options +FollowSymlinks AllowOverride All <IfModule mod_dav.c> Dav off </IfModule> SetEnv HOME /var/www/owncloud SetEnv HTTP_HOME /var/www/owncloud </Directory> </VirtualHost>

    Enable and verify the owncloud vhost

    sudo a2ensite owncloud.conf sudo apachectl configtest

    oc-apache.png

    Now install OwnCloud

    Change the database name, user, and password to whatever you named the OwnCloud database earlier;

    Change the ‘admin user’ and ‘admin pass’ to whatever you want the new OwnCloud admin account to be.

    sudo -u www-data /var/www/owncloud/occ maintenance:install \ --database "mysql" \ --database-name "owncloud" \ --database-user "owncloud"\ --database-pass "password" \ --admin-user "admin" \ --admin-pass "your new owncloud admin password"

    Edit the OwnCloud config file to add the domain you used earlier in the Apache2 vhost file:

    sudo nano /var/www/owncloud/config/config.php 'trusted_domains' => array ( 0 => 'localhost', 1 => 'whatever your domain is goes here', ),

    Personally I restart the server at this point, which will restart all services. Then visit the domain / IP of your settings and you should see the OwnCloud login page. Use the credentials you setup for the admin user.

    System cron setting:

    sudo crontab -u www-data -e */15 * * * * /usr/bin/php -f /var/www/owncloud/occ system:cron

    Memcache with Redis we installed earlier:

    sudo nano /var/www/owncloud/config/config.php 'filelocking.enabled' => true, 'memcache.local' => '\OC\Memcache\APCu', 'memcache.locking' => '\OC\Memcache\Redis', 'redis' => [ 'host' => 'localhost', 'port' => 6379, ],

    Go restart the server again and enjoy!

    read more

  • rickR

    Comment out in=>

    /usr/lib/python3/dist-packages/middlewared/plugins/vm/vms.py # elif flags['intel_vmx']: # if vcpus > 1 and flags['unrestricted_guest'] is False: # verrors.add(f'{schema_name}.vcpus', 'Only one Virtual CPU is allowed in this system.') # elif flags['amd_rvi']: # if vcpus > 1 and flags['amd_asids'] is False: # verrors.add( # f'{schema_name}.vcpus', 'Only one virtual CPU is allowed in this system.' # )

    At this point we must comment out each time we update the system.

    read more