EC2はxenで動いていて、clocksourceもxenになっています。gettimeofdayはvDSOという仕組みによってユーザーランドで実行してくれまうが、clocksourceがxenだとカーネルランドで実行されてしまいます。
例えばJavaでSystem.currentTimeMillisやSystem.nanoTimeをループで実行する処理を書いてstraceを見てみると、大量のシステムコールが実行されているのが観測できます。(gettimeofday, clock_gettime)
clocksourceはtscに変更すると良いぞという情報はあるのですが、一方で危険なので変更すべきでは無いという情報もあります。
AWSのサポートに聞いたときは、新しめのInstance(C4)と新しめのAMIだったら大丈夫だよと言われたのですが、変更するとちょこちょこKernelメッセージ出るし、収益に直結しているサービスに投入するのも怖い。
というわけで、staging環境ではやってみたんだけど、productionには投入できていません。