A small SYN flood.
It's a bit weird your VPS cannot stand 700 half-opened connection.
Unfortunately, there's nothing you can do at the server level because you are using OpenVZ. It uses a single kernel, every users share it so you cannot tweak it (/proc/net, /proc/sys/net etc).
In the future, if you have to face SYN floods again, go for Xen VPS for instance, at least you could fight back
My host recommend that I try:
"Try with nginx as a reverse proxy and let us know how it works."
Unless there were some major changes to the TCP protocole last night and no one informed me, before a packet can reach the HTTP server backlog there must be a 3-way handshake sequence. During a SYN flood you are stuck (and will remain stuck) in the middle of it. It is a kernel problem, not an Apache/Nginx problem. The only help you could get is from your hosting company but... it looks like it's going to be tough
I think that the number next to the IP (in my first post) is the number of processes that that IP is using on my VPS.
If they are in the SYN_RECV state, they are just half-opened connections, no processes. They are just filling up your kernel backlog and when it's full, your server drops any further packet.
What about the 195 ESTABLISHED connections ? Is that the average/normal traffic on your server ?