You could try an enzymatic/bacterial cleaner, especially if you know something went down the drain.
It’s supposed to eat and break down the gunk that collects on the walls.
It seems to work for me. I use it as maintenance and removing the source of odors.


The one I use is “Drain Defense” by Zep