Ask one hundred rail travelers about onboard tipping and you will get one hundred different answers. Here’s my two cents (figuratively, not my tipping suggestion).
First, note the quality of service you receive. The onboard service staff gets paid a decent wage (unlike restaurants, for example) so they actually make out well even without tips. Don’t hesitate to tip very little or nothing if the service is poor (and sadly that happens on Amtrak). On the other hand, be sure to reward the staff people who perform well. Tipping a poor server the same as a good one is really an affront to the good one. It will make the good server wonder why they bother to go over and above if the drone is making out just as well.
So what is a reasonable tip? I would say $10 per room per night for the car attendant is right for good service. They have to work just about as hard to service a single in a room as a double, so in my mind the tip should reflect the room, not the number of occupants. And even if you have a Superliner Roomette with no toilet, the attendant is the one keeping the common facilities clean. If they are kept clean, and if your room is serviced properly and timely, they should be rewarded. Double that tip is you have meals served to you in the room.
In the dining car, the typical 15 to 20% of the tab is appropriate. With sleeping car passengers getting free meals, that requires some math. At breakfast and lunch, the typical entry is $8, beverage is $2, and dessert (lunch only, I hope) is $4. At dinner the typical entree is $17, beverage (non-alcoholic) is $2, and dessert is $4. So figure breakfast at $10, lunch at $14, and dinner at $23. My tip would be $2 per person at breakfast, $2.50 at lunch, and $4 at dinner. More if you buy beer or wine (not free).