함께 놀자! Linux와 Python

Lock free Algorithms for Ultimate Performance

1. 지난주에 이어 오늘도 Lock Free Algorithm 자료입니다. Lock-Free Multi-Producer Multi-Consumer Queue on Ring Buffer QCon 2012 행사때 발표한 자료입니다. 발표자는 Disruptor를 만든 LMAX의 Martin Thompson입니다. LMAX를 위한 프레임워크로 개발한 Disruptor의 소스를 공개하여 현재 3.0까지 나왔습니다. Lock-Free Algorithms For Ultimate Performance   2. Disruptor 말고 또다른 오픈소스를 소개합니다. 제가 자주 방문하여 몇 수를 배우는 곳입니다. Mintomic입니다. Minimal + Atomic을 결합한…
Read more

Lock-Free Multi-Producer Multi-Consumer Queue on Ring Buffer

1. 해외 기술논문을 읽어보면 Ring Buffer를 이용한 기술들이 많습니다. LMAX의 Disruptor도 역시 Ring Buffer를 이용하여 Multi-Threading Application을 구현하고 있습니다. 오늘 소개하는 논문도 Ring Buffer와 관련한 자료입니다. 논문을 알게된 계기는 저자가 대표로 있는 회사의 블로그입니다.Linux Journal에 실린 글입니다. 제목은 “How to Scale the Work Queue in a Multicore Environment”입니다. 전문을 함께 올립니다. My Article In Linux Journal 2. 아울러 논문에서 소개한…
Read more

USB로 CentOS를 설치하기

1. ZeroAOS를 사용하는 고객들이 어떤 Linux를 사용할지 문의를 하면 특별한 경우가 아니면 CentOS를 권합니다. RedHat Enterprise Server와 동일하기때문입니다. RedHat을 정식으로 구매하면 지원서비스를 받을 수 있지만 제가 아는 한 한국 RedHat이 해줄 수 있는 일은 별로 없을 듯 합니다. 조금 노력만 하면 인터넷에서 원하는 자료를 찾을 수 있습니다. 개발과 시험을 위한 CentOS 서버를 하나더 만들어야 하는 일이 있었습니다. 예전같으면 CD나 DVD로…
Read more

CPU Shared Cache를 잘 사용하는 방법

1. LinkedIn에 올란 글중 Function Pointer와 관련한 글을 읽다가 찾은 글입니다. shared cache 를 위한 소프트웨어 테크닉 이 글은 Software Techniques for Shared-Cache Multi-Core Systems을 요약 번역한 글입니다. 제가 이전에 정리하였던 IPC와 False sharing과 짝을 이루는 글입니다. 그래서 위의 글과 원문을 섞어서 소개합니다. CPU에 최적화한 개발, 좋은 성능을 얻는 방법입니다. 다만 시간과 비용이 많이 들어갈 뿐! 2. 먼저 원문의 시작은…
Read more

Linux 초보자를 위한 추천 교육

1. Linux가 자본시장의 대세입니다. 코스콤의 자본시장IT아카데미처럼 리눅스를 가르치는 과정이 필요합니다. 초급부터 고급까지 다양한 과정이면 좋겠죠. 개인적으로는 꼭 커널과정이 있었으면 합니다.  리눅스 재교육을 위한 파트너 선정 방법에서 소개했던 Geek Stuff가 초보자를 위한 리눅스 프로그램을 내놓았습니다. 저와 특별한 관계가 있는 곳도 아니지만 그동안 블로그에 올렸던 글을 보면 내공이 듬뿍 들어간 과정이 아닐까 합니다. CentOS 6.0을 다루기 위한 600쪽의 PDF 교재, 비디오교재 등을…
Read more

PowerPC와 AIX의 튜닝

1. 2004년쯤입니다. 넥스트웨어 대표이사를 맡고 있을 때 HTS플랫폼을 대만에 수출하기로 하고 어떤 회사와 계약을 맺었습니다. 단 조건이 IBM AIX용으로 변화하여야 한다는 조건이었습니다. 이 때 개발자와 함께 대만에 들어가서 AIX용으로 작업을 하였습니다. 그 당시 가지고 있었던 HiperT는 Linux와 Solaris환경에서 개발,운용하였지만 AIX도 유닉스라 큰 어려움이 없을 것으로 생각했습니다. 그런데 성능이 마음에 들지않았습니다. 문제가 된 부분을 해결하기 위하여 AIX튜닝에 도전했었습니다. 다시 10년이 흘렀습니다….
Read more

Linux와 C-State관리

1. 지난 한주동안 HP서버를 열심히 튜닝하였습니다. 공장 출시한 값으로 설정한 서버를 Low Latency Server로 바꾸는 일이죠. 문서는 HP에서 나온 문서입니다. Configuring and Tuning HP ProLiant Servers for Low-Latency Applications 오래전 BIOS 설정을 할 때 C3-State관리가 중요하다는 사실을 알고 있기 때문에 BIOS설정을 먼저 하였습니다. BIOS 셋팅과 레이턴시 그런데 HP문서를 보면서 C State를 BIOS뿐 아니라 커널에서도 설정을 해준다는 사실을 처음 알았습니다. 이…
Read more

ZTerminal과 Windows TCP Tuning

1. ZeroAOS시험중 가장 큰 부분은 ZTerminal입니다. 처음 구상했을 때 ZTerminal은 없었습니다. 속도가 중요한데 GUI를 사용할 이유가 없다고 판단했습니다. Linux의 curses를 이용하여 모니터링과 관리를 위한 Terminal프로그램을 개발하여 사용했습니다. 그렇지만 DMA가 특정한 트레이더가 아닌 리테일서비스로 발전하려면 반드시 GUI가 필요하다는 결론을 내릴 수 밖에 없었습니다. GUI를 구성할 때 어떻게 할지가 이슈였습니다. HTS처럼 Request/Reply방식으로 서비스를 구성할지를 생각해보았습니다. 서버에 대한 부담을 최소화하고 ZTerminal을 통하여 트레이더가…
Read more