I just managed to get some RUB at the Arcade, 2nd floor
Decent rate @ S$42.50 per 1000 roubles
(or 23529 RUB per 1k SGD).
That's around 9.5% more than the interbank rate (!!) but one has to carry some emergency cash particularly in a place such as the Federation

When in Russia for places that accept credit cards, I'll much rather pay around 4-6% to use my credit card whenever I can, and can still earn miles while doing so.
Just FYI, interbank rate btw is currently S$38.80 per 1000 roubles
(or 25773 RUB per 1k SGD), but don't expect to get anything near that rate in practice - most money changers here now charge a
minimum of S$44... which is practically a 13.5% premium of over the current interbank rate.
Local moneychangers shoulder significant risk stocking up on illiquid/"dangerous" currencies such as the RUB, and need to make it up by having thicker spreads.
One tip is to check a with a few moneychangers, negotiate well, pool with other travelling partners if travelling together and/or buy other currencies in the same transaction if needed.
When leaving Russia for good, shed all your RUB at the airport and change for USD or EUR. If you don't, it's hard to get rid off once you're back.