There are several ways to figure this out.
1) "A fish's stomach is only as large as its eye" PHOOY! Different fish (carnivore vs. herbivore) can take it different amounts of food on different schedules.
2) "Only feed as much as they can eat in X minutes" PHOOY! Different fish feed at different rates. Grazing fish nibble all day (or night) long. Insect eaters snatch as much food as they can when it appears, knowing that another meal might be days away.
3) Go by how clean the tank is after the slower eating fish have eaten (such as the Otos. They rasp the algae wafers and vegetables over several hours). Go by water tests such as NO3. Go by the health and activity level of the fish. Go by the snail population (rising snail population suggests overfeeding).
Here is how I do this:
For herbivores I offer fresh or frozen vegetables almost daily. Let them eat the algae, too. Algae wafers (Mine seem to like Omega One best).
For carnivores I offer pellets of all sorts, depending on the size of the fish. I get them from
Natural Tropical Fish Food - Fish Food Online Store
For smaller fish I offer similar food materials (algae or higher protein blends) in flake form (same source).
I also use frozen foods.
I mostly feed twice a day, but I do skip days, too.
I am very careful not to skip feeding very young fish, offering them crushed flake, small frozen things like baby brine shrimp, as well as keeping them in tanks with dense plants like Guppy Grass for the microorganisms.
NO3 levels in most of my tanks are so low I am adding NO3 for the plants, so I know I am not overfeeding for that reason.
However, snail populations are rising in tanks without Loaches. (Rams Horn, MTS, Pond Snails). So I probably am overfeeding for that reason.