I use Apache jmeter, which is free. Alternative a simple nodejs script. It's possible to saturate my laptop simply because any outgoing request has a cost (CPU, bandwidth, writing results to disc) and I wouldn't be able to simulate 100k users. For most cases and a piece of mind that the website doesn't break under load it's fine.
Those services do just that: send requests to a specified URL. Some can play whole scenarios (logging in, setting cookies etc). The power is in the reports they create and the convenience of an easy (repeatable, shareable) setup. You may or may not need to simulate users from across the globe or users with slow connections or certain browsers.
If possible have a second setup of your website for testing. This makes sure you don't pollute your production logfiles or affect real users.