Optimize InnoDB settings for current VPS setup
Batch inserts into a single INSERT.  Optimal is to gather 100-1000 at a time and build a single, large, INSERT, then perform it.  It will run about 10 times as fast.
Build a CSV file and use LOAD DATA.  Also much faster than single-row inserts.


For tossing the table and starting over, have innodb_file_per_table=ON.  Caution:  You have probably already put the table in ibdata1, it is too late to take advantage of that flag.  Do not change it.

DROP TABLE or TRUNCATE TABLE will free up space for reuse tomorrow. 
 (With it ON, it would also give the space back to the OS.)  But, if you will simply be reloading it, then there is no real need to give the space back.  Simply TRUNCATE TABLE.

Yeah, 10GB vs 8GB is feasible.  But you won't lose another 2GB every day.

10GB for 30M rows?  That's 300 bytes per row?  That sounds high.  Let's see the schema; there are probably some improvements to be made.  Most likely is TINYINT / SMALLINT / MEDIUMINT / INT / BIGINT -- sizes 1/2/3/4/8 bytes, but with different max values.

innodb_buffer_pool_size should probably be 5G if you have 8GB of RAM (and you are running only MySQL on it).  More CPU cores won't help anything.

If your 30M will grow, you probably cannot survive in a tiny 20GB of disk.  However... If you could summarize the data either as you go, or hourly, then you won't need to store all 30M.  Give us more details; we can help further.