[英]Response time from nodejs server with express on raspberry pi extremely slow
[英]Express/NodeJS + Mongoose App server response slow
我有一個Express(Node.JS)+ MongoDB應用,服務器響應加載時間平均為4-7秒(緩慢)。
據我了解,根據Google Pagespeed工具 ,平均服務器響應時間在200毫秒以下 。
這個應用程序是從mongoDB異步獲取數據,但是到數據庫的往返時間非常慢,每次調用平均大約500ms-1s。 這些調用是簡單的findAll調用,用於檢索少於100條記錄的數據。
我檢查了數據庫指標,它們看起來不錯。 也沒有慢查詢。 這些是簡單的findAll查詢。 蒙哥地圖集的性能顧問認為沒有異常。
生產應用程序和數據庫都托管在同一區域中。
我已經嘗試通過運行.lean()優化查詢(貓鼬)的應用程序層
我還應該在哪里改善數據庫延遲? 一個簡單的查詢如何花這么長時間? 否則,為什么預期的時間約為200毫秒,我的服務器響應時間最多需要4s?
我曾經使用相同的開發堆棧(mongodb,nodejs)在我的nodejs代碼中遇到過同樣的問題,我陷入了api遲來響應的麻煩,並且花了很多時間后才發現我的服務器是真正的罪魁禍首,然后我從heroku更改了到Amazon aws EC2實例,事情開始快速而且出奇地快,所以您的Web服務器可能是罪魁禍首
為了確保mongodb不是罪魁禍首,請編寫一個api端點,您可以在其中返回一些json響應而無需對數據庫進行任何查詢。
我用我的碩士學位開發的應用程序給您增加了一些像您一樣的問題。 我添加了一個在線運行的node.js api並將其呈現在教室中。我意識到每次我想在api中進行調用時,響應都會占用時間。 我意識到問題之一是防火牆造成的學校網絡。 我放置服務器heroku.com的地方也給了一些延遲。 我所做的是使用Redis( https://redis.io/ )來提高性能,而且heroku也因為請求是http而不是https而給我帶來了一些問題。
進行測試,在本地主機上運行應用程序和數據,然后查看性能。 如果您沒有任何問題,請嘗試檢查是否沒有使您的請求混亂,例如托管節點服務器的位置。
讓我知道這是否有幫助,或者您仍然遇到問題,以便我可以更好地幫助您。
您也可以嘗試使用Azure服務。 注冊時,只需少量服務即可免費獲得1年。 Azure使您可以在各個區域中部署多個實例,從而可以最大程度地減少延遲。 如果預算合適,則可以使用針對node.js + mongoDB應用程序進行了高度優化和自動管理的Web應用程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.