I’m new to LibreNMS and I am not a Linux expert by any means. I’ve got LibreNMS up and working, but I think I need to dial in the performance. I’m running on Ubuntu with Apache. I’m getting a lot of gaps in my graphs and I haven’t even set that many up yet. I’ve read through the docs, but I think a lot of stuff there assumes a level of knowledge of Linux that I just don’t have. So, I’m hoping someone can give me some help. Explain it to me like I’m 5. And a Windows user.
This is the document I’m using: Performance - LibreNMS Docs
RRDcached
Since version 1.5, rrdtool / rrdcached now supports creating rrd files over rrdcached. If you have rrdcached 1.5.5 or above, you can also tune over rrdcached. To enable this set the following config:
$config['rrdtool_version'] = '1.5.5';
NOTE: This feature requires your client version of rrdtool to be 1.5.5 or over, in addition to your rrdcached version.
First, I assume that line should be added to /opt/librenms/config.php. Is that correct?
Second, the version of rrdtool/rrdcached I have installed is 1.7.0-1build1. Do I use 1.5.5 in that line in the config file, or do I use the actual version I have? In my instance should it be “$config[‘rrdtool_version’] = ‘1.7.0’;” or “$config[‘rrdtool_version’] = ‘1.5.5’;”?
MySQL Optimisation
It’s advisable after 24 hours of running MySQL that you run MySQL Tuner which will make suggestions on things you can change specific to your setup.
One recommendation we can make is that you set the following in my.cnf under a [mysqld] group:
innodb_flush_log_at_trx_commit = 0
You can also set this to 2. This will have the possibility that you could lose up to 1 second on mysql data in the event MySQL crashes or your server does but it provides an amazing difference in IO use.
And here I am completely lost. How do I run the MySQL Tuner? That link just goes to a page of code. I have no idea what to do that with. Where is the my.cnf file that I should edit with that line? What does a value of 0 or 2 actually do? Why should I choose a setting of 2 over 0, or vice versa?
SNMP Max Repeaters
I don’t understand what I’m trying to accomplish here, what impact this setting has or what the “best setting” is that I’m trying to find. Looking at the polling history, one of my Cisco 6807 switches takes the longest to poll at around 45 seconds. I ran the script three different times, several minutes apart, for values of 10, 25, and 50. These were my results.
Run #1 | Run #2 | Run #3
Repeaters: 10 | |
real 0m11.897s | real 0m7.210s | real 0m12.416s
user 0m0.046s | user 0m0.064s | user 0m0.059s
sys 0m0.068s | sys 0m0.042s | sys 0m0.047s
| |
Repeaters: 25 | |
real 0m10.233s | real 0m6.145s | real 0m22.163s
user 0m0.041s | user 0m0.057s | user 0m0.038s
sys 0m0.035s | sys 0m0.028s | sys 0m0.040s
| |
Repeaters: 50 | |
real 0m10.258s | real 0m7.283s | real 0m8.935s
user 0m0.047s | user 0m0.040s | user 0m0.033s
sys 0m0.054s | sys 0m0.043s | sys 0m0.054s
That looks pretty much the same to me for each run, but also kind of all over the place between runs. And the raw values themselves don’t mean anything to me. I have no idea what to do with these numbers.
fping tuning
I understand what is going on here, I just want to make sure I’m adding this config to the correct file. I assume /opt/librenms/config.php, but I don’t see those “default” values listed there. Unless they don’t have to be unless you want to change them?
Optimise poller-wrapper
The default 16 threads that
poller-wrapper.py
runs as isn’t necessarily the optimal number. A general rule of thumb is 2 threads per core but we suggest that you play around with lowering / increasing the number until you get the optimal value
How do I know what the “optimal value” is? My server has 8 cores, so the default of 16 follows the rule of thumb. If I lower/increase that number, what do I need to be looking for to happen or not happen?
I know this is a lot of help to ask for, and I have a lot I still need to learn, so I greatly appreciate any assistance!