Chapter 3. Troubleshooting and Performance Tuning

As your network becomes ever more production-ready, you will need some additional techniques to help debug problems as they arise. While some errors are directly related to misconfiguration, others are less obvious. Depending on the deployment conditions and network usage patterns, problems with the network may actually be related to poor performance. Optimizing the network’s performance for your particular scenario can be key. Because of this, troubleshooting and tuning are presented together.

The stats Command

A quick and easy way to observe when events occur in OpenBTS is by using the stats command. There are several dozen event types that are tracked. To get a full list of them, run the stats command with no arguments:

OpenBTS> stats

Each event type is simply a key name in a small SQLite3 database and the value for each key corresponds to the number of times this event has happened since the last time the stats database was cleared. Clearing the database is handy to give yourself a known starting count for the events you are interested in. To clear the database, execute the following:

OpenBTS> stats clear
stats table (gReporting) cleared

Now, if you send an SMS from one handset to the other on your network and search for SMS-related events, you will see something like the following:

OpenBTS> stats SMS OpenBTS.GSM.MM.CMServiceRequest.MOSMS: 1 events over 4 minutes OpenBTS.GSM.SMS.MOSMS.Start: 1 events over 4 minutes OpenBTS.GSM.SMS.MOSMS.Complete: ...

Get Getting Started with OpenBTS now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.