Menu

v1.14 Performance Improvements

2016-04-11
2016-10-11
  • Jonathan Yantis

    Jonathan Yantis - 2016-04-11

    Sorry for the lack of activity lately, but I've been busy on other projects. I do have some good news on performance to report. We have recently migrated to a new 8core server with 32GB of ram. I have migrated NetDB to a new MariaDB instance and tweaked some indexes and settings. Using concurrent imports which I will include in the new version, here's the impact on our imports:

    2016-04-11 18:43:08: netdbctl(21527): Importing 56842 INT Entries in to switchstatus table with 16 Processes
    2016-04-11 18:43:12: netdbctl(21527): Importing 38726 MAC Entries in to switchports table with 16 Processes
    2016-04-11 18:43:18: netdbctl(21527): Importing 55009 ARP Entries in to ipmac table with 16 Processes
    2016-04-11 18:43:28: netdbctl(21527): NetDB update complete

    20seconds

    Here’s the old server:

    2016-04-11 18:40:13: netdbctl(18890): Importing 56842 intstatus entries in to switchstatus table
    2016-04-11 18:40:53: netdbctl(18890): Importing 34156 MAC entries in to switchports table
    2016-04-11 18:42:58: netdbctl(18890): Importing 46307 ARP Entries in to ipmac table
    2016-04-11 18:45:14: netdbctl(18890): NetDB update complete

    5:01min

    That's a dramatic improvement. I am also going to see what I can do to improve the scraping performance so we can do faster imports. We're hoping to maintain 5min updates when we're done, which shouldn't be hard at this point.

    Queries are also dramatically improved on large databases, especially Hostname searches. Once I wrap this up, I plan to push out a new Ubuntu 14.04 VM Image with an optimized version of MariaDB preinstalled.

    Here are our current stats:

      NetDB Statistics
     ---------------------------------
       MAC Entries:      1072358
       ARP Entries:      2236562
       Switch Entries:   358006
       WiFi Entries:     8218005
       Status Entries:   57236
       Registrations:    135324
       DB Transactions:  254088
       Total Rows in DB: 12331579
    
     
  • tartan

    tartan - 2016-06-12

    Hi jonathan,
    what about the new vmware image,
    Are you still working about it ?

    I look forward to this version.

    Thanks a lot again for this beautiful project.

     
  • Jonathan Yantis

    Jonathan Yantis - 2016-06-12

    Tartan,

    Glad you're still enjoying NetDB. I've been hard at work on a new Python project called NetGrph. I'm waiting on an internal code review, but once I get it approved for release, I plan to release both a NetDB and NetGrph hybrid VM on either Ubuntu 14.04 or 16.04 depending on the timing. NetGrph is not out yet, but if you want to take a look, here's the overview:

    https://notehub.org/cj2td

    I'm really excited about this project, and I'm just waiting to get it released and tested before I release a new VM with both programs included.

    Jonathan

     
  • tartan

    tartan - 2016-06-14

    Yes, they will be very complement.
    For fun, my stats this day :

    NetDB Statistics


    MAC Entries: 47617
    ARP Entries: 260461
    Switch Entries: 68099
    WiFi Entries: 92011
    Status Entries: 49959
    Registrations: 0
    DB Transactions: 1659268
    Total Rows in DB: 2177415

    You win :)

     
  • Jonathan Yantis

    Jonathan Yantis - 2016-06-14

    Hah, except for your transaction count ;)

    If you're doing automated queries against the database, you can always use netdb -nt to filter those out of the transaction table.

    Stay tuned...

     
  • Christophe Vermeren

    Can you share to use when v1.14 will be available?

     
  • Jonathan Yantis

    Jonathan Yantis - 2016-10-11

    Christophe,

    At this time, I'm still working on NetGrph integration with NetDB, which is taking longer than I would like. If you would like to work with the latest NetDB code, you can follow these instructions against a fresh Ubuntu 16.01 image, and instead of running the NetGrph playbooks, run the netdb.yml playbook in netdb/extra/playbooks/ on the trunk repository against localhost.

    Follow Setting Up Ansible to Run Against Localhost:
    http://netgrph.readthedocs.io/en/dev/playbooks/README/

    Then Clone the repo to tmp:

    svn checkout https://svn.code.sf.net/p/netdbtracking/code/trunk netdb

    Then run the playbook:

    cd /tmp/netdb/extra/playbooks/
    ansible-playbook netdb.yml

    You should be able to restore your current database with netdbctl -re to try it out. This will install the latest MariaDB and includes all of the performance increases.

    Currently the password for the web interface is adminchangeme3742, and you can update the password with htpasswd /etc/apache2/htpasswd netdb

    Hopefully I will have a new VM out soon, but I want to wait until NetGrph is integrated out of the box since maintaining VM images is not easy.

     

Log in to post a comment.