DNSMasq Using high CPU and ignoring requests

ChickenMilk

New Around Here
At least once a day (usually more) on my AC3100 (386.7) for about 15-30 minutes dnsmasq starts using high CPU and causes it to be non responsive. Causing panic in the house.
It's been happening for the last couple of versions (I think since 386).
I am currently using Diversion with Pixelserv and Skynet. Also have DNS Rebind Protection, DNSSEC and DNS Over TLS Using cloudflare turned on.
Has anyone else experienced this? How can I go about troubleshooting it?
See attached pic for when dnsmasq become unresponsive.
 

Attachments

  • AC3100-dnsmasq.JPG
    AC3100-dnsmasq.JPG
    164.1 KB · Views: 80

eibgrad

Part of the Furniture
I actually don't know what the issue is. But given the incredible demands these AddOns place on little ol' DNSMasq these days, I can't say I'm really surprised something like this might be happening from time to time, perhaps to sort large data sets (look at all the memory it's consuming too).

It's one of the reasons I stay away from them. But I would think something like this would be done on the "off hours" for just this reason. But I really can't tell if this is something gone haywire, or normal behavior and just bad timing.

When's the last time you did a clean upgrade? I've seen way too many instances where a clean install of the firmware followed by a factory reset and *manual* reconfiguration suddenly fixed all sorts of weird problems.

P.S. Anything in the syslog at that time that might suggest what it's doing (DNSMasq or the AddOns)?
 
Last edited:

dave14305

Part of the Furniture
What size blocking list are you using in Diversion? It’s probably too large for your router’s CPU and memory.
 

Martinski

Regular Contributor
Has anyone else experienced this? How can I go about troubleshooting it?
See attached pic for when dnsmasq become unresponsive.
If you want to get more debug information about the "dnsmasq" process, you can type the following commands on an SSH session terminal window:
Bash:
killall dnsmasq ; dnsmasq --log-async=20 --log-debug --log-dhcp --log-queries
ps -w | grep dnsmasq | grep -v "grep dnsmasq"
The additional dnsmasq log entries will be found in the system log files (/tmp/syslog.log*).

If you want to store the dnsmasq log entries into a separate log file add the following parameter:
Bash:
--log-facility="/FOLDER/PATH/TO/dnsmasq.debug.log"
Where "/FOLDER/PATH/TO/" is the full directory path where you want to store the file. For example:
Bash:
killall dnsmasq ; dnsmasq --log-async=20 --log-debug --log-dhcp --log-queries --log-facility="/tmp/var/tmp/dnsmasq.debug.log"
ps -w | grep dnsmasq | grep -v "grep dnsmasq"

Note that the separate log file can grow big fairly quickly depending on the number of network clients you have connected & amount of network activity, so you want to do this ONLY for debugging purposes and ONLY for a couple of days, maybe three at most. Always keep an eye on the log file size. If you have a USB drive attached to the router, you can point the full path of the separate log file to the USB drive.

To restart the dnsmasq process with its default parameters simply type:
Bash:
service restart_dnsmasq
 

Similar threads

Latest threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top