There's a few issues.
The first one is hardware. Your drive is a WD Green drive, which is generally is about 5400 RPM which is a very slow drive, slower than typical 7200 RPM consumer drives.
One of the biggest tasks in updating is fetching node positions. This is random access, which your drive sucks at.
One option is to use the
--flat-nodes option, which will use a 20GB binary file to store node locations instead of a table in the database. This can have significant performance boosts on HDDs as it relies more on sequential access than database tables.
You don't need or benefit from 8000MB memory being used for node cache when updating. 1000 is probably enough. This will, depending on overcommit settings, allow more memory to be used for caching database content.
maintenance_work_mem are too high for a machine with 10GB. I'd probably go with
work_mem = 64MB and
maintenance_work_mem = 1024MB, and even that might be high.
You haven't said where you got europe-latest.osm.bz2, but I'm presuming it's a geofabrik extract. If so, they make daily diffs which allow you to update your database with just data from Europe. To do this, you'd need to edit the osmosis configuration.txt file to change baseUrl to
baseUrl=http://download.geofabrik.de/europe-updates. You'd also have to edit state.txt to the right sequence number, which you can find by looking at the dates in http://download.geofabrik.de/europe-updates/000/000/. Once you find the right state file you can download it, e.g. with
curl -o /osmosisworkingdir/state.txt http://download.geofabrik.de/europe-updates/000/000/416.state.txt.
Switching to daily diffs from geofabrik should cut back the amount of data that is being added.
Lastly, since you have to reimport for --flat-nodes, you should make sure to download a new Europe extract, and make sure to download PBF, not bzipped XML.
Your new import command should look something like
osm2pgsql -c -d gps -U gps --cache 8000 --number-processes 4 --slim \
--flat-nodes europe_nodes.bin europe-latest.osm.pbf
Your update command would be something like
osmosis --read-replication-interval workingDirectory=/osmosisworkingdir/ \
--simplify-change --write-xml-change - | \
osm2pgsql --append -d gps -U gps --cache 1000 --number-processes 4 --slim \
--flat-nodes europe_nodes.bin -
Of course, the biggest speed boost possible is probably from using an area smaller than all of Europe.
Even with all this, rendering tiles off of a 5400RPM drive is never going to be fast.