Hi,
Today I started wondering why the
aprs.fi servers were spending a lot of
CPU time processing AIS upload requests. There was also a surprising high
amount of log files about the processing of AIS data (and errors found
while doing that), and the logs space was about 95% full already. 200G of
those logs were for AIS requests alone, which I promptly deleted to
prevent the disk from filling up.
This turned out to be due to AIS feeding clients, which are posting AIS
boat positions in a single position packet per HTTP request, instead of
batching multiple positions in a single HTTP upload, which the JSON AIS
format allows. This is very inefficient, as
aprs.fi needs to do some
processing per each HTTP upload, and now needs to do that processing for
every position separately. More efficient clients like gnuais upload the
data in larger batches.
I disabled a few of these clients directly, and sent emails to the owners.
One receiver owner replied and described which client is being used.
Thanks!
I've posted bug reports to the github reports:
https://github.com/gregbartels/ais_jsonaprs/issues/2
https://github.com/sycophantic/ais_json/issues/4
I'm also configuring a rate limit on the aisfeed endpoints to limit the
request rate to 6 requests per minute, initially. This frees up some CPU
on this side and should allow some positions to go through. When the
client implements the required buffering & batching, all boat positions
will be transferred smoothly.
Sorry for the inconvenience.
- Hessu