-
[오류] Mac OSX 에서 Apache bench 사용시 apr_socket_recv: Connection reset by peer (54) 오류 해결 방법Mac 2012. 11. 8. 14:33
아파치 웹서버에 포함돼 있는 Apache bench 는 HTTP에 대한 성능을 간단히 테스트 할 수 있는 도구이다.
그런데 맥(mac) OSX 에서 Apache bench 사용시 "apr_socket_recv: Connection reset by peer (54)" 라는 타임아웃 오류가 발생하는 경우가 있다. 아마도 Lion 이상 버전에서 발생하는 것 같다.
이런 경우 ab 명령어를 patch를 해야 한다. 패치하는 방법은 아래와 같다.
- apache 를 새로 다운로드 받는다. (현재 최신 버전은 2.4.3)
- 압축 해제 및 패치 적용
- httpd-2.4.3 폴더에 압축을 푼 후 httpd-2.4.3 폴더로 이동한다.
- httpd-2.4.3 폴더 안에 패치파일(https://www.rtfm.ro/download/patches/ab.patch) 을 다운 받는다.
- $ patch -p0 < ab.patch
- $ ./configure
- $ make
- 기존 ab 와 교체
- $ which ab
- /usr/sbin/ab
- $ sudo cp /usr/sbin/ab /usr/sbin/_ab
- $ sudo cp support/ab /usr/sbin/ab
컴파일을 하기 위해서는 Xcode를 설치하고 "Preferences... > Downloads > Command Line Tools" install 해야 한다.
하지만 Command Line Tools 를 인스톨 해도 컴파일이 안되고 "C compiler cannot create executables" 에러가 나는 경우가 있는데 그 이유는 실제 컴파일 하기 위해 사용하는 "cc" 파일 위치와 Xcode 를 통해 설치한 "cc" 파일 위치가 달라서 그렇다. 그럴땐 아래와 같은 방식으로 심볼릭 링크를 걸어주면 된다.
$ sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain
패치가 끝났으면 아래와 같이 "ab" 명령을 사용해 보자
$ ab -n 1000 -c 100 http://google.com/
위 명령은 http://google.com/ 에 대해서 동시접속 100명이 접속해서 1000번의 요청을 했을 때 결과를 리포팅 해주는 명령이다.
'Mac' 카테고리의 다른 글
Mac OSX Mavericks 알림 센터에서 메시지 앱 알림 버그 (0) 2014.01.28 맥(Mac) 에서 tail 사용시 색깔 입히기 (0) 2013.04.03 맥(Mac)에서 텍스트 복사/붙여넣기 할때 서식 없애는 앱 (0) 2013.03.26 맥(Mac) OSX 에서 "다음으로 열기(open with)" 프로그램 중복 문제 해결 방법 (0) 2013.03.08 맥(Mac)에서 dmg 파일 iso 로 변환 하기 (0) 2012.12.05 맥(Mac) OS X 맥포트(macports) 설치 및 사용법 (2) 2012.07.30 맥(Mac) 마운틴 라이언( OS X Mountain Lion )으로 업그레이드 하기 (0) 2012.07.26 맥(Mac)에서 슬립모드 또는 화면보호기 방지하기 (0) 2012.07.25 Mac(맥)에서 App(앱) uninstall(언인스톨) 깨끗하게 하기 (0) 2012.07.16 Mac(맥)에서 php.ini 설정하기 (0) 2012.07.09