I use; old eyes and my glasses are always somewhere else, what we call liquid paper or typex. It's the same as chalking it, but it lasts a bit longer. In the army we used white paint for the serial number of our personal weapon. One way of staying on the base during the weekend, was being found with the wrong weapon in your hand.
Sanding it, will sometimes work well too, shiny surface with rusty numbers. I bought a punch set to mark parts I take off when there could be any doubt when putting them back, but be sure you don't wreck them in the process.
To keep them visible, like a frame number, that has to be checked for yearly inspection ( in Holland ) I filled it in with paint and covered it with some layers of “varnish”, but sometimes they don’t believe that and clean it up to make sure it’s the right number.
What I heard about, but never tried it. A strong acid will eat away the steel around the numbers faster than the numbers it self, were the steel is a bit more dense from the punch. Clean well after trying this, acid will keep eating it and you might loose that part.