세번째 밴치마크

오랫많이 Talkson 소식!

그동안 갈고, 닦고, 어르고, 달래고, 기타등등
Talkson을 향상 시킨 결과

많은 안정성과 성능향상이 되었다.
성능 테스트에 쓰인 툴은 http_load

동시접속 512 on Intel Core2 Duo 1.6Hz with 4GB ram

  1. fetch a page 100,000 times, using 512 of simultaneous connections
    • lighttp:
      100000 fetches, 512 max parallel, 2.8e+06 bytes, in 35.2356 seconds
      28 mean bytes/connection
      2838.04 fetches/sec, 79465.1 bytes/sec
      msecs/connect: 30.9682 mean, 9026.79 max, 0.056 min
      msecs/first-response: 137.636 mean, 559.75 max, 0.405 min
      HTTP response codes:
      code 200 -- 100000

박원순 후보자의 서울시장 당선을 축하합니다.

Nice!

내년 대선에는 꼭 부재자 투표하리~

두번째 benchmark

몇일동안 고심하고
프로파일링하고
열심히 최적화를 하여서!!!

lighttp보다 1000배 느리던 talkson을
lighttp보다 2배 빠르게 만들어버렸다;;;;

이제 좀 뿌듯하다 ㅋ

2000배의 성능개선이라고 봐야하나? (으쓱)
문제는

ThreadPool에 의해 관리되는 Worker Thread들이
매번 새로운 task를 받을 때 마다

어느 한 worker-thread 객체에 pthread_cond_signal()을 호출해서 깨우고
그놈이 일을 배당받은 일을 마친 후에는
pthread_cond_wait()를 호출해서 다시 block모드로 보내는것이 문제였다.

뭐..자세한 얘기는
OS와 kernel의 process-scheduler 얘기를 해야하니깐 생략;;

해결책은 pthread_mutex와 pthread_cond 없이
lock-free algorithm으로 구현했는데

2000배의 성능 차이가 ㅋㅋㅋㅋ

암튼 기쁘다..
하지만, 내가 구현한 이 lock-free algorithm에 어딘가 문제가 있어서
가끔씩 task queue에 들어있는 객체를 날려먹는다.

대충..
40개의 동시접속을 이용해
총 10000개의 HTTP요청을 talkson에게 보내면

가끔씩, 9998~9999까지 처리하고, 1~2개를 날려먹는다.

뚫어지라 코드를 훝어봐도 뾰족한수가 안보이네..
lock-free algorithm의 단점은..
그놈이 정말 thread-safe한지 증명하기가 참 힘들다..ㅡㅡ;;;

첫번째 benchmark

Talkson 프로젝트가 어느정도 자리를 잡아감에 따라

테스트를 하기에는 아직 미완성이지만..그냥
기분 fresh겸사(?) 성능 테스트를 해보기로 했다.

Talkson의 핵심 포인트는 대용량 처리가 가능한
고성능 C++ servlet container이다.

즉!
성능으로 먹고살아야 하는 프로그램인데..;;;;;;

http_load라는
널리쓰이는 테스트 툴을 사용해보았다.

결과는...-_-
lighttpd보다 무려..........
.......................
두두둥.....
......................

1000배 느리다 -_-
농담이 아니다

1000배
1000배
1000배
1000배

-________________________-;;;;;;;

일정시간 충격에 있다가 오늘은 열심히 profiling 중
내가 여태 개발하면서 얼마나..성능 신경쓰면서
코딩을 했건만..ㅜㅠ

분명...어딘가에...누굴까.....
어떤넘이 내 자식을 이따구로 만들었지...ㅜㅠ

무한 프로파일링 중

해외를 진출 할 때....

오늘 다음에 올라온 모델 강승현에 대한 인터뷰 기사를 읽었다:
http://photo.media.daum.net/photogallery/culture/0804_culturenews/view.h...

인터뷰 내용 중 이런말이 있더라..

Q. 세계적인 모델을 꿈꾸는 이들에게 조언은?

A. 영어가 큰 장벽이라고 생각하지 말 것. 언어는 마지막 조건이다. 중국 모델들의 도전정신은 놀랍다. 영어 한마디 못해도, 키가 크지 않아도 그들은 정말 당당하다. 과감하게 도전하라.

정말 당당하게 *도전* 하는 사람에게 장벽이란 없는것 같다.

굳이 말로 설명하지 않아도, 당당하게 내세우고 보여 줄 수 있는 사람에게는
언어가 장벽이 되지 않는다.

GIT cheat sheet

github.com을 이용할 때,
유용한 GIT 커맨드 모음집이다.

사실, github.com 뿐만이 아니라 대부분의 git에 유용한
커맨드가 대부분이다.

http://help.github.com/git-cheat-sheets/

참고로, 내 git repository
http://github.com/ddoman

JRDN I don't care

얼마전 라디오를 듣다가 2NE1의 I don't care 리메이크 버젼을 들었다.
딱 듣자마자...엇 이거 2NE1의 노래를
영어로 개사해서 리메이크를 했구나...

멜로디와 코드 진행, 박자도 거의 똑같고..
마치 그냥 개사한듯한 느낌..
제목도 똑같이 I don't care

뭐..이젠 한국노래를 해외로 수출도
하는구나 싶었다..

요즘들어 그 노래가 라디오에서 심심치 않게 나오길래 어떤넘인가 궁금해서
유튜브에서 함 찾아봤다...근데..왠걸;;;

댓글들 왈.....이거 2NE1 노래의 표절이라네????
아니..이렇게 제목까지 똑같이 하고, 코드, 박자까지 거의 동일하게 해서
그냥 개사한 수준이라고 생각되게 만들정도로..

이렇게 해놓고, 표절이라고????
에이..설마...돈 받고 곡 수출한거겠지...

내가 표절해도 이렇게 똑같이(제목마저도) 그대로 개사만해서 내놓친않을것 같은데..말도안돼...

근데...아무리 뒤져봐도 관련 정보는 못찾겠다...
설마 그렇게 정말 바보같이 개사만해서 자기노래라고 하는건 아니겠지? -_-

공부 공부 공부

Talkson이 large-scalable을 목표로 하다보니깐
컴파일러 최적화나 SMP에서의 캐쉬 이슈,memory barrier/fence 등의 주제와 싸울수밖에 없었다.

아직 공부할것이 너무 많은 것 같다.
누가 선물로 책 사줬으면 좋겠다. ㅜㅠ

http://www.amazon.com/UNIX-Systems-Modern-Architectures-Multiprocessing/...
http://www.amazon.com/Art-Multiprocessor-Programming-Maurice-Herlihy/dp/...
http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/...

일하다가 눈물 찔끔..

오늘 점심을 먹고, 잠시 웹서핑을 하던 중
안타까운 기사를 보고 울컥했다.

http://media.daum.net/society/affair/view.html?cateid=1010&newsid=201106...

유년시절 자신을 버린 어머니를 찾아가 살해하고 재혼남까지 살해버린것인데,
사연을 읽다보니 살해당한 사람들보다 버림받았던 그 사람의 인생이 얼마나 힘들었을까 느껴졌다.

유아 시절, 아버지가 잦은 가정폭력을 행사했고,
7살 때 어머니는 동네의 다른 남자와 바람나서 자식들을 버리고 떠나갔고,
12살 때, 아버지는 자살해서, 동생과 함께 고아원에서 자라났다고한다.

어린나이에 인생이 얼마나 힘들었을까..기사를 읽다가 나도모르게 눈물이 찔끔났다.
그 버림받은 아이는 35살이 되어서 어머니를 찾아갔고,
어머니와 그 바람남( 둘이 재혼해서 잘 살고있었다고 한다. ) 모두를 죽여버리고 방황하다가 이틀만에 경찰에 자수했다고 한다.

살해는 이유를 막론하고 비판받아야하는 행위가 틀림없지만, 살해를 당한 부모보다, 살해를 한 아이가 더 안타깝게 느껴진다.

싱숭생숭..

그냥..마음이 싱숭생숭하네..;;;;
향수병인가보다...ㅜㅠ

친구들도 보고싶고..
가족들도 보고싶넹;;;

Syndicate content