Linux 一些简单的系统调用需要毫秒

Linux 一些简单的系统调用需要毫秒,linux,debian,system-calls,Linux,Debian,System Calls,我正在运行少量的游戏服务器(每个cpu核心一个)。然而,尽管硬件功能非常强大,并且没有其他任务在这些核心上运行,但我始终面临一些与每秒帧数稳定性相关的问题。某些原因导致游戏服务器进程等待太长时间(有时长达3-4毫秒,这在我的情况下是不可接受的) Strace实用程序显示如下内容: 17:56:27.683580 gettimeofday({1374414987, 683587}, NULL) = 0 <0.000003> 17:56:27.683599 gettimeofday({1

我正在运行少量的游戏服务器(每个cpu核心一个)。然而,尽管硬件功能非常强大,并且没有其他任务在这些核心上运行,但我始终面临一些与每秒帧数稳定性相关的问题。某些原因导致游戏服务器进程等待太长时间(有时长达3-4毫秒,这在我的情况下是不可接受的)

Strace实用程序显示如下内容:

17:56:27.683580 gettimeofday({1374414987, 683587}, NULL) = 0 <0.000003>
17:56:27.683599 gettimeofday({1374414987, 683606}, NULL) = 0 <0.000003>
17:56:27.683619 gettimeofday({1374414987, 683626}, NULL) = 0 <0.001693>
17:56:27.685387 gettimeofday({1374414987, 685437}, NULL) = 0 <0.000034>
17:56:27.685492 gettimeofday({1374414987, 685550}, NULL) = 0 <0.000025>
17:56:27.683580 gettimeofday({1374414987,683587},NULL)=0
17:56:27.683599 gettimeofday({1374414987683606},NULL)=0
17:56:27.683619 gettimeofday({1374414987683626},NULL)=0
17:56:27.685387 gettimeofday({1374414987685437},NULL)=0
17:56:27.685492 gettimeofday({1374414987685550},NULL)=0
也许这就是这些延迟(考虑到gameserver进程是单线程的)发生的原因

然而,问题是为什么一些系统调用需要这么多时间?我尝试过各种类型的内核抢占,但结果仍然是一样的

期待您的帮助

附言

操作系统-Debian 7 64位

Linux内核版本-3.2.46

可能在调用过程中发生了上下文切换。服务器以实时优先级运行。我甚至尝试隔离一些cpu内核,但仍然是一样的。尝试使用
getrusage
系统调用并检查
ru\u nvcsw
ru\u nivcsw
。这样,你至少可以确定它是一个上下文切换还是其他什么。我在开始进行音频实时编程时学到的第一件事是,永远不要在实时过程中使用系统调用。相反,使用单独的线程。