我正在编写一个高性能的服务器应用程序(在Linux上),并且我试图获得一个快速的关键路径。我关心的是内存分页和在操作期间将内存交换到磁盘(延迟为毫秒级)。我的问题是,如果我在服务器上有很多内存(比如16 no ),而我的内存利用率保持在6-10 no左右,并且我知道同一机器上没有其他进程。是否可以保证在应用程序启动和预热后不会发生页面丢失?
我使用的是grpc.aio.server,我遇到了一个问题,如果我试图对我的服务进行负载测试,它会有一些请求延迟10秒,但是请求是相似的。负载是稳定的(200 are ),几乎所有请求的延迟几乎相同。我可以有更高的延迟,只要它稳定。我试着搜索类似异步任务优先级之类的内容,但在我看来,这意味着等待很长时间的任务的优先级出现了问题,但它们已经完成,或者整个请求任务等待了很长时间。我看到,例如第10次请求延迟是10秒,而第13次请求延迟是5秒。我还可以在日志中看到,db查询的执行时间几乎相同。
有什么建议吗?也