Ramp up is how long it takes from the start of your test (0 virtual users) to the maximum number of users you've selected.
For the duration of the ramp up period, the number of users will increase at regular intervals until all intended users are running your script.
You may be wondering why you wouldn't just start all users at once.
In production, it's rare for all users accessing your application to perform exactly the same action at exactly the same time. While there are some situations in which this is what happens, what's far more common is a more gradual increase of traffic. One user clicks on a link, and then another one, and more and more until you've reached your peak load of users.
Having a ramp up simulates this pattern. Otherwise...
Your server may not be equipped to handle simultaneous load (because it doesn't happen in production), so you may see test results that are significantly worse than they would be if your load were more realistic. You and other stakeholders might see interpret the results as poor performance when in reality, it's your workload model that's wrong.
This really depends on your application and the patterns of actual users that you see in production, but here are some general recommendations. If you're running a shakeout test or a test at low load, set the ramp up to 0. Ramp up usually isn't necessary.
If you're running a peak load test, set a ramp up between 15-30 minutes.
If you're running a stress test, set a ramp up for the same duration as your flood to see the number of users constantly increase throughout the test.