Troy is a city in and the county seat of Miami County, Ohio, United States located 19 miles (31 km) north of Dayton. The population was 25,058 at the 2010 census.