@strizhechenko strizhechenko released this Jan 21, 2018 · 6 commits to master since this release

Assets 2

New class structure

There is a new class-structure in server-info utility and netutils_linux_hardware package:

Server class manages five subsystems - CPU, Disk, Net, Memory and System.

Server (server-info) can collect (--collect), read (--show) and rate (--rate) data.

Before the refactoring there were 3 big classes: Reader, Parser (--show) and Assessor (--rate). They had duplicated data about subsystems. Well, there were no "subsystems", there were just a lot of functions with prefixes in those classes. Now all those functions live in their own subsystems, all subsystems have standardised API (that's very cool for Server class, it can just iterate over subsystems).


There is a new Folding class with all the folding logic/constants. Also there is no more -f, -ff, -fff args, use --device, --subsystem, --server instead.

Other things

Some code was simplified and I restored run tests for server-info --rate. Also I got rid of six.iteritems dependency in few places and just use .items(). There no big data, so I don't think that 2-3 kbits of RAM are more than code simplicity.

@strizhechenko strizhechenko released this Jan 14, 2018 · 8 commits to master since this release

Assets 2

All new options available:

  --cpu                 Show information about CPU
  --memory              Show information about RAM
  --net                 Show information about network devices
  --disk                Show information about disks
  --system              Show information about system overall (rate only)


# server-info --rate --device --net --cpu
  BogoMIPS: 5
  CPU MHz: 5
  CPU(s): 5
  Core(s) per socket: 10
  L3 cache: 7
  Socket(s): 10
  Thread(s) per core: 10
  Vendor ID: 10
  eth1: 3.6666666666666665
  eth6: 9.666666666666666
  eth7: 9.666666666666666

It also works with --show:

# server-info --show --memory --disk 
    model: null
    size: 21474836480
    type: HDD
      size: '512'
      speed: 0
      type: RAM
    MemFree: 78272
    MemTotal: 500196
    SwapFree: 0
    SwapTotal: 0

Also if you run server-info without necessary parameters it shows more human-oriented error and --help output instead of traceback with AssertionError.

Jan 14, 2018
Fixed(server-info): human-oriented error in case of no command specif…
…ied (#191)

* Fixed(server-info): human-oriented error in case of no command specified.
* Release(v2.7.3)


@strizhechenko strizhechenko released this Jan 2, 2018 · 14 commits to master since this release

Assets 2

Well, I failed the challenge to release it before new 2018 year. But later is better than never!

Detail are boring, you'd better look at examples in README!

  1. All the server-info-* utils have one entry point now.
  2. Old server-info-rate and server-info-show utils deleted.
  3. server-info-collect called via wrapper until it will be rewritten in python. It's a separate issue.
  4. Added (and fixed) tests for server-info --rate feature. It doesn't fail on all examples in ./tests/server-info-show.test/
  5. Yes, utils call looks like this now: server-info --rate instead of server-info-rate
  6. You can collect data and optional pack it into tarball with server-info --directory <path-to-directory> --gzip. It will make <path-to-directory>.tar.gz with all the data that you can take from server for later analyze.
  7. New examples are already in README.
Dec 20, 2017
Folding (#181). Added: folding of server-info-rate output
Can be used only manually now.

@strizhechenko strizhechenko released this Dec 20, 2017 · 27 commits to master since this release

Assets 2

You can now skip details of your server's rating this way:


  • server-info-rate -f - shows entire device rate
  • server-info-rate -ff - shows entire subsystem's rate
  • server-info-rate -fff - shows entire server's rate


$ server-info-rate -fff
WARNING: why do you use 20 years old hardware, dude?

Just a joke. For example:

➜  vscale-vm git:(folding) ✗ server-info-rate -ff
cpu: 4.5
disk: 1.0
memory: 1.0
net: 1.3333333333333333
system: 1.0

It can't be used directly via server-info rate call, you should go to /root/server/ before run server-info-rate. I know it's shitty usability, I'll fix it this week in 2.7.2.

@strizhechenko strizhechenko released this Dec 18, 2017 · 29 commits to master since this release

Assets 2

Good news first

There is optional dmidecode support, now you can see how good your RAM is:


Bad news

Python 2.6 is deprecated so hard, so it's probably impossible to use pytest to run tests in Travis-ci anymore. I tried to jump into details and problem is probably not in pytest or python, but in pip. pip 8.0.1 installed by yum in CentOS 6 installed the latest version of pytest without any problems while pip 9.0.1 refused. I don't know how to set version of pip for python 2.6 environment in Travis, so I just removed it from .travis.yml.
What does it mean? Higher probability of making bugs specific for python 2.6 - some modern syntax usage, etc. But is it a problem?

Main py2.6 users are CentOS 6 users. Where are python3.4 in EPEL in CentOS 6, so it's still possible to use.
Also, there are Carbon Reductor 7 users. Well, most of them have old versions installed already and everything works. In Carbon Reductor 8 I will move netutils-linux from py2.6 env to 3.4 in January when I'll upgrade to a new version (from... 2.0?).

We (Carbon Soft) also offer a help in migrating from Carbon Reductor 7 to Carbon Reductor 8. So probably no one will suffer from bugs (I hope), but feel free to create issues.

@strizhechenko strizhechenko released this Aug 24, 2017 · 45 commits to master since this release

Assets 5


  • Highlighting of CPU/NIC had been able to break rss-ladder
  • numa and socket layout were mixed-up
  • lscpu output could not be parsed correctly in python3 and everything that needs CPU topology thought that you had only one logical CPU


  • you may pass file with lscpu -p output to network-top in debugging purposes.

@strizhechenko strizhechenko released this Jul 15, 2017 · 89 commits to master since this release

Assets 2

Basic /proc/net/snmp file watcher:

-16-2017 01-25-23

Finished in just one day!

There is much more to do: #144

@strizhechenko strizhechenko released this Jul 12, 2017 · 102 commits to master since this release

Assets 2


Well, the only difference between rps and xps tuning if queue prefix (rx and tx)... So here are 25 lines changed and you are able to distribute packets transmitting between CPUs even with single-queue NIC!


# autoxps eth0
Using mask 'ff' for eth0-tx-0