프로덕션 웹 응용 프로그램에 대한 초당 "평균"요청은 무엇입니까?
"빠른"것으로 간주되는 기준은 없습니다. 나는 항상 이것을 궁금해했지만 결코 정답을 찾지 못했습니다 ...
OpenStreetMap은 초당 10-20의 것으로 보입니다
Wikipedia는 300 대의 서버에 분산 된 초당 30000-70000 인 것으로 보입니다 (컴퓨터 당 초당 100-200 개의 요청, 대부분 캐시 임)
지리학이 주당 7000 개의 이미지를 받고 있습니다 (95 초당 1 회 업로드)
여전히 관심이있는 사람은 없지만이 정보 는 Twitter에 대해 게시되었습니다 (그리고 여기에도 해당 ).
통계
- 350,000 명 이상의 사용자 실제 숫자는 항상 최고 슈퍼 비밀입니다.
- 초당 600 회 요청
- 초당 평균 200-300 개의 연결. 초당 800 회 연결
- MySQL은 초당 2,400 개의 요청을 처리했습니다.
- 180 개의 레일 인스턴스. Mongrel을 "웹"서버로 사용합니다.
- MySQL 서버 1 개 (큰 8 코어 상자 1 개) 및 슬레이브 1 개. 슬레이브는 통계 및보고 용으로 만 읽습니다.
- 홀수 작업 처리를위한 30 개 이상의 프로세스
- 8 Sun X4100s.
- Rails에서 200 밀리 초 안에 요청을 처리합니다.
- 데이터베이스에서 소요 된 평균 시간은 50-100 밀리 초입니다.
- 16GB 이상의 memcached.
내 웹 호스트의 제어판으로 이동하여 phpMyAdmin을 열고 "MySQL 런타임 정보 표시"를 클릭하면 다음과 같은 결과가 나타납니다.
이 MySQL 서버는 53 일, 15 시간, 28 분 및 53 초 동안 실행되었습니다. 2008 년 10 월 24 일 오전 4시 3 분에 시작되었습니다.
쿼리 통계 : 시작된 이후 3,444,378,344 개의 쿼리가 서버로 전송되었습니다.
시간당 총
3,444M 분당 2.68M
초당 44.59k 743.13
지난 53 일 동안 1 초마다 평균 743 개의 mySQL 쿼리입니다!
나는 당신에 대해 모른다, 그러나 나에게 그것은 빠르다! 매우 빠릅니다 !!
개인적으로, 나는 매번 수행되는 두 가지 분석을 모두 좋아합니다 .... 요청 / 초 및 평균 시간 / 요청 및 최대 요청 시간을 보는 것을 좋아합니다. 초당 61 개의 요청이있는 경우 쉽게 넘길 수 있으며 1000ms / 61 개의 요청으로 간단히 넘길 수 있습니다.
귀하의 질문에 대답하기 위해, 우리는 스스로 큰 부하 테스트를 해 왔으며 우리가 사용하는 다양한 아마존 하드웨어 (범위가 $$ / event / second로 떨어졌을 때 32 비트 중간 CPU가 가장 좋음)와 요청 / 초 범위에서 발견됩니다 29 개의 요청 / 초 / 노드에서 최대 150 개의 요청 / 초 / 노드 범위입니다.
물론 더 나은 하드웨어를 제공하면 더 나은 결과를 얻을 수 있지만 최고의 ROI는 아닙니다. 어쨌든,이 게시물은 내가 다른 사람들이 찾고있는 경우를 대비하여 야구장에서 내 숫자를 공유하고 내 공유했는지 확인하기 위해 몇 가지 유사점을 찾고 있었기 때문에 훌륭했습니다. 내가 갈 수있는만큼 내 것이 순전히 적재된다.
참고 : ms / request가 아닌 requests / second 분석 덕분에 우리는 리눅스 (C와 java에서 서버를 테스트 했음)가 너무 많은 부하에서 소켓 라이브러리에 대한 모든 호출을 멈추는 곳에서 해결하려는 주요 Linux 문제를 발견했습니다. 매우 이상해 보입니다. 전체 게시물은 실제로 여기에서 찾을 수 있습니다 .... http://ubuntuforums.org/showthread.php?p=11202389
이 문제가 해결되면 테스트가 2 분 42 초에서 1 분 35 초로 진행되어 33 %의 성능 향상을 볼 수 있다는 점에서 우리는 여전히 해결하려고 노력하고 있습니다. DoS 공격이 더 심할수록 이러한 일시 중지 시간이 길어질수록 모든 CPU가 0으로 떨어지고 처리를 중지합니다 ... 내 의견으로는 서버 처리가 DoS에 직면해야하지만 어떤 이유로 든 때때로 얼어 붙습니다. Dos 동안 때때로 최대 30 초 !!!
추가 : 우리는 실제로 jdk 경쟁 조건 버그라는 것을 알았습니다. 큰 클러스터에서 분리하기는 어렵지만 서버 1 데이터 노드 1 개를 실행했지만 그중 10 개를 실행할 때마다 매번 재현 할 수 있었고 서버를 보았습니다. / datanode가 발생했습니다. jdk를 이전 릴리스로 전환하면 문제가 해결되었습니다. 우리는 jdk1.6.0_26에 있다고 생각합니다.
That is a very open apples-to-oranges type of question.
You are asking 1. the average request load for a production application 2. what is considered fast
These don't neccessarily relate.
Your average # of requests per second is determined by
a. the number of simultaneous users
b. the average number of page requests they make per second
c. the number of additional requests (i.e. ajax calls, etc)
As to what is considered fast.. do you mean how few requests a site can take? Or if a piece of hardware is considered fast if it can process xyz # of requests per second?
Note that hit-rate graphs will be sinusoidal patterns with 'peak hours' maybe 2x or 3x the rate that you get while users are sleeping. (Can be useful when you're scheduling the daily batch-processing stuff to happen on servers)
You can see the effect even on 'international' (multilingual, localised) sites like wikipedia
less than 2 seconds per user usually - ie users that see slower responses than this think the system is slow.
Now you tell me how many users you have connected.
You can search "slashdot effect analysis" for graphs of what you would see if some aspect of the site suddenly became popular in the news, e.g. this graph on wiki.
Web-applications that survive tend to be the ones which can generate static pages instead of putting every request through a processing language.
There was an excellent video (I think it might have been on ted.com? I think it might have been by flickr web team? Does someone know the link?) with ideas on how to scale websites beyond the single server, e.g. how to allocate connections amongst the mix of read-only and read-write servers to get best effect for various types of users.
'IT story' 카테고리의 다른 글
SQL Server 설치-설치 미디어 폴더 란 무엇입니까? (0) | 2020.08.06 |
---|---|
"필수"jQuery 플러그인은 무엇입니까? (0) | 2020.08.06 |
Matplotlib : "알 수없는 투영 '3d'"오류 (0) | 2020.08.06 |
XDocument와 함께 XPath를 사용하는 방법? (0) | 2020.08.06 |
Windows 서비스에서 사용하기위한 최상의 타이머 (0) | 2020.08.06 |