2008/11/27

윤분투(Ubuntu), 오픈솔라리스(OpenSolaris), 프리비에스디(FreeBSD)의 성능 비교

흥미로운 성능 비교입니다.
성능 비교를 위해서 다음과 같은 것들을 비교했다고 하는 군요. Poronix Test Suite이라고 하네요. 아래와 같은 성능 테스트가 포함되어 있습니다.


7-Zip Compression
Gzip compression
GnuPG
BYTE Unix Benchmark
Tandem XML
Bork File Encryption
Java SciMark
Bonnie++
OpenSSL
Sunflow Rendering System

오픈 솔라리스도 비교적 좋은 성능을 보여주는 군요 특히 Java관련된 성능이 가장 잘나오는데, 그다지 놀랍다고 되어 있지는 않네요. Java가 썬거니.. 당연하지 하는 분위기.. ^^
아마도 대부분이 zfs의 우수한 성능 덕분에 생성된 결과로 보입니다.







[Phoronix] Ubuntu vs. OpenSolaris vs. FreeBSD Benchmarks

2008/11/25

IT에서 시스템 엔지니어라는 것..

제가 멘토링을 해준 한 학생이 어느날 저에게 와서 묻더군요.
시스템 엔지니어가 뭘 하고, 무슨 의미가 있는지...

그때 대답해준다고 편지 입니다.

----------------------

음.. 시스템 엔지니어라는 건 쉽게 비유하면

각 가정에서 냉장고를 사고 싶어해요. 그러면, 영업사원이 찾아가서 냉장고를 팔면 되겠지?

그런데, 영업사원이 전자제품은 전혀 모르는 가정 주부에게 냉장고에 대해서 많은 걸

얘기해주려고 하니 영업사원 한 사람이 아는 내용이 너무 적은게야.

그래서 영업사원 둘이되서 가정 주부에게 찾아가면 전달가능할 정보가 두배가 되므로

판매에 도움이 되겠지? 그런데, 굳이 영업이 둘인 경우보다는 냉장고 자체를 잘 아는

그 누군가가 같이 있으면 좋겠지 ? 그런 사람을 냉장고 엔지니어라고 가정해보자.



그대로 it에 비유할 수 있는데, 시스템의 경우에는 냉장고보다 훨씬 복잡하지. 그러니,

필연적으로 영업혼자 할 수가 없지. 더욱이 시스템은 하드웨어 그 자체보다 그 위에

수행되는 서비스(소프트웨어)가 더 복잡하지. 따라서, 엔지니어가 필수적이라고 할 수

있지. 그래서 IT에서는 엔지니어가 존재하게 되어 왔지. (더 큰 프로젝트에는 컨설턴트도
별도로 붙어서 정보 전달의 조직이 커지게 되지.)


요약하면, 궁극적으로 영업이든 시스템 엔지니어든 영업, 즉 판매를 촉진을 돕는

사람이라고 할 수 있고 (고장난 제품을 고쳐주는 엔지니어가 아니라면 영업이지 ^^; )



단순 영업은 그냥 친밀도와 가격으로 제품을 판매하려고 하는 반면에 시스템 엔지니어들은

첨단 기술과 신뢰로 제품을 판매하는 것이 다르다고 할 수 있지.

이런 시스템 엔지니어는 궁극적으로 IT 아키텍쳐 컨설턴트의 길을 가게 되고,

영업은 사장님의 길을 가게 되는 것이야.  IT 아키텍쳐 컨설턴트는 냉장고 하나 쓸때부터

냉장고를 1000개 만개 쓸때 어떻게 하면 적은 전기에 고효율에 수납을 편하게 할 수 있는 지등

전체를 고려하는 사람이 되는데, 위에 든 예와 비교하자면 냉장고를 팔지만  집 자체를

디자인하는 디자이너에 가까워진다고 할 수 있겠지.



그런데, 문제는 IT 컨설턴트가 소개해야할 기술들이 몇몇 없고(정말 냉장고처럼)

그걸 활용해서 사용하는 경우가 많지 않다면, 그냥 영업 사원의 조수로 전락하는 수가

생기게 되지. 그래서, 늘 최신 기술을 업데이트해야하고, 영업 사원보다는 장기적으로

전략적으로 생각하는 사고를 가져야 하는데, 쉽지 않지. 나이를 먹을 수록 몸이

피곤해질 수록, 매달리는 사람이 많을 수록(특히, 아이) 주변 상황이 피곤해질 수롤

자신을 업데이트 하는 것이 쉽지 않게 되거든.



시스템 엔지니어들은 첨단 기술로 명성과 존경을 받고, 그만한 금전적 대우를 받으면

할만한 일이긴 한데, 그렇지 않다면 정말 괴로운 일이라고 할 수 있겠지.

나도 늘 스스로 그런 사람인가 되묻곤 하지. ^^;



하지만, 뭘 선택하든 언제든지 바꿀 수 있는 기회가 있다는 것을 잊으면 안되고

오히려 중요한 것은 선택한 것에 집중을 해서 그쪽에서 일가견을 가진 사람이 되는 것이

더 중요하다는 것을 잊기 않길.

USB 3.0 세대

USb 3.0이 곧 나타난다고 하는 군요.
인터페이스가 바뀌게 되면, 대상을 이해하는 수준도 달라지게 되는 법인데
usb3.0이 이끌고 올 세상에서 솔라리스에 대한 이해도가 증가할 수 있을지 궁금하네요.

소스 : 스마트 쇼핑저널 버즈

2008/11/24

일부 프로세스에게만 자원 조정 및 관리를 하고 싶을때

자식 프로세스를 생성하는 쉘 스크립트가 있다고 하죠.
편의상 start.sh이라고 할때 start.sh은 여러개의 자식 프로세스를 실행할 수 있습니다.

이런 경우, start.sh을 실행하는 사용자의 기본 프로젝트의 정책과 달리 다른 정책으로 start.sh과 그 자식 프로세스들을 관리하고 싶은 경우가 있습니다. 예를들면, start.sh를 포함한 자식 프로세스는  1 core의 50%만 최대 사용할 수 있도록 제한을 두고 싶다면 일단, 1 core의 50%만을 사용하도록 정책이 선언되어 있는 프로젝트를 하나 만들어야 합니다.

솔라리스10에서 새로이 추가된 cpu-cap은 cpu 사용의 최대를 제안할 수 있습니다. 참고로, 기존에 제공하던 FSS와는 완전히 반대로 무조건 주어진 값(%) 이상을 CPU를 점할 수 없도록 하는 정책입니다.

#projadd -U admin -K "project.cpu-cap=(privileged,50,deny)" cap50
와 같이 cap50이라는 프로젝트를 만듭니다.

이제 start.sh을 실행하려고 하는데, 최대 cpu를 50%만 사용할 수 있도록 하게 하고 싶으면 다음과 같이 실행합니다.

#newtask -p cap50  start.sh


혹은
#newtask -p cap50 bash
#start.sh
과 같이 실행해도 됩니다.

실제로 CPU가 50%만 사용하는 지 확인을 하고 싶으면
#prstat -J
를 실행해서 Project 목록을 보도록 합니다.


실행을 했는데 사용중에 cpu 자원을 바꿔보고 싶으면 다음과 같은 방법을 사용합니다.
우선 task id를 확인합니다.
# ps -o taskid -p 8982
TASKID
 1039

해당 ID의 관심 자원 (여기서는 cpu-cap입니다)의 값을 확인합니다.
# prctl -P -i task 1039 | grep -i cap
project.cpu-cap privileged 50 - deny -

다음과 같은 방법으로 실시간 교체를 실행합니다.
#prctl -t privileged -n project.cpu-cap -r -v 200 -i task 1039


관심 대상의 자원에 따라, 위 prctl의 명령의 아규먼트는 약간 씩 다를 수 있습니다.