我们有一个生产系统,这是一个ASP.NET Web API (经典的,而不是.NET Core)应用程序发布到Azure。数据存储是Azure SQL Database,我们使用Entity Framework来访问数据。API有一个中等负载,每秒10-60个请求,upper_90延迟为100-200ms,这就是我们的情况。一段时间前,我们注意到,大约每20-30分钟,我们的服务就会暂停,延迟会跳到大约5-10秒。所有请求开始缓慢大约一分钟,然后系统自行恢复。同时,没有请求被删除,它们都需要更长的时间才能执行。短时间内(通常1分钟)。
我们开始在HTTP请求遥测(Azure)上看到以下图片:
我正在运行一个带有nginx+php的ubuntu vserver。使用"htop“时,我看到php5-fpm的CPU使用率很高:
PID user PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
20513 www-data 20 0 229M 67980 35324 S 42.0 3.3 1:00.60 /usr/sbin/php5-fpm --fpm-config /etc/php5/fpm/main.conf
如何确定哪个.php文件负责服务器负载?我下一次如何监控它?谢谢