"service-perfdata.dat file size: 2.0Gb. Is this OK?"
No! You're using nagiosgraph and a map file right? You need to set in your nagios.cfg service_perfdata_file_mode=w rather than =a. Nagiosgraph is trying to parse a 2gb file every service check, and as a result the nagios proc isn't starting any more service checks until it's done. change the mode to "write" or this problem will occur again when your perfdata log gets big.
Note for other people reading this thread: nagios 2.2 or 2.3 and prior had a bug where it mismatched append mode and write mode, so if it's already in write mode, switch it to append and see if the perfdata file stays real small.