Place the bacon and onion in a frypan over medium heat then cook and stir until the bacon is crisp and the onion is beginning to brown; about 10 minutes.
While the bacon and onion are cooking fill a large saucepan with lightly salted water and bring to a rolling boil over high heat. Once the water is boiling stir in the penne and return to a boil. Cook the pasta uncovered stirring occasionally until cooked through but is still firm to the bite; about 11 minutes. Drain pasta, transfer to a large serving bowl and stir in the olive oil to coat the pasta.
Drain the bacon oil from the frypan leaving a couple of tablespoons or to taste. Stir the cooked bacon mixture into the pasta and sprinkle the Parmesan cheese over the pasta. Stir to mix in the cheese then serve.