간단한 '안녕하세요 세상'HTTP 서버를 벤치 마크하려고합니다. go
입니다. 나는이 만든이 개 테스트 :탄력있는 콩팥에 Golang 앱을 실행할 때 성능 문제가 있습니까?
- 아마존 EC2 사용 - 또한, 내가 할 수있는 최초의 설정에 m3.medium 단일 인스턴스
로 - m3.medium 인스턴스를 아마존 탄성 콩나무를 사용
소스 코드 : (에서 : https://golang.org/doc/articles/wiki/)
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:])
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
는 큰 성능 차이에 대한 설명이 있습니까?
PS : 벤치 마크 도구 : https://github.com/wg/wrk
또 하나 개 중요한 것은 : 처음 설치에 을 응용 프로그램 (및 이동 애플 리케이션을 위해 내가 그것을 제거 할 수 없습니다) 것 탄성 콩나무는 항상 역방향 프록시로 nginx를 추가 , 전혀 nginx가 없었다.
또 다른 차이점은 EB 설정에 Elastic Load Balancer가 관련되어 있다는 것입니다. "탄력적 인"부분은 트래픽으로 확장 될 예정이지만 성능 테스트와 같이 갑자기 트래픽이 갑자기 폭발하여 ELB가 중단 될 때까지 문제가 발생할 수 있음을 알았습니다. – Brian
Brian과 동의하십시오. 가설을 검증하기 위해, 1) ELB 뒤에있는 m3.medium, 2) m3.medium + ELB, 말하자면, 15 분간의 지속 하중, 3) m3.medium + ELB + nginx를 비교할 수 있습니다. – twotwotwo
내 EB 설치가 단일 인스턴스이지만 좋은 지점 – rcmgleite