함께 놀자! Linux와 Python

어플리케이션 로그와 레이턴시

1. 그동안 네트워크, 메모리와 관련한 레이턴시이야기를 했습니다. 오늘은 파일시스템입니다. 정확히 File System을 구성하는 저장매체에 대한 이야기입니다. 트레이딩시스템을 구축할 때 여러가지를 고려합니다. 그중의 하나가 SSD입니다. 요즘 트레이딩시스템을 구현하면 대부분 메모리를 이용합니다. shared Memory를 이용하여 데이타를 관리합니다. 하지만 이것외에도 시스템의 I/O에 영향을 주는 부분이 있습니다. 어플리케이션 로그입니다. 로그를 업무에 따라 다양하게 정의하여 사용할 수 있습니다. 트레이딩시스템의 로그중 가장 중요한 로그는 주문 및…
Read more

Memory Latency와 LMbench

1. 레이턴시가 여전히 화두입니다. 레이턴시는 컴퓨터구조를 공부하도록 합니다. 레이턴시를 이야기할 때 자주 등장하는 그림입니다. 하드디스크보다는 메모리, 메모리보다는 CPU 캐시를 이용한 어플리케이션이 빠른 이유입니다. 그런데 똑같은 어플리캐이션이라고 하더라도 하드웨어가 다르면 다른 성능을 보입니다. 좀더 좋은 CPU나 TOE를 지원하는 네트워크카드를 선호하는 이유이기도 합니다. ?하드디스크를 대신하여 SSD를 이용하는 것도 같습니다. 그런데 메인메모리는 한번 깊이 생각해보지 않았습니다. 몇 일전 메인메모리를 검토할 기회가 생겼습니다. Netlist사의…
Read more

어떤 멋진 모임

1. 몇 일전 CPU이야기를 소개하였습니다. 오늘은 커널을 소개하고자 합니다. 아침에 일어나서 구글로 지난 뉴스를 뒤적거렸습니다. 그중 C11과 관련한 내용을 찾아보았습니다. C11은 2011년에 만들어진 C언어에 관한 표준규격입니다. 그동안 표준은 C99였습니다. C99라고 해서 C11보다 최신 표준인 것으로 착각했습니다. C와 C++의 표준은 제정한 해의 마지막 두자리를 기준으로 버전을 정한다고 합니다. C Finally Gets A New Standard C11 Draft 같이 일하는 파트너는 concurrency와 관련한…
Read more

IPC와 False Sharing

1. 멀티코어시대가 열리면서 메시징시장은 변화합니다. 그중 하나가 IPC 지원입니다. 코어와 코어간의 통신이 중요해지면서 IPC가 각광을 받기 때문입니다. ZeroM도 그렇고 ZeroAOS도 IPC를 쓰레드간의 통신을 위하여 사용합니다. 시세<->OMS, OMS<->FEP게이트웨어는 IPC로 연결합니다. ZeroAOS의 성능측정을 위하여 여러번 시험을 해보았습니다. 시험을 할 때마다 이상한 증상이 보였습니다. Jitter로 해석할 수 없는 비정상적인 값들이 보이더군요. 무얼까 열심히 고민을 해보았습니다. 수많은 데이타를 보면서 일정한 패턴을 찾을 수가 없었습니다….
Read more

윈도우에서 리눅스 명령어 익히기

1. 제가 자주 가는 일본 ITPro에 ?아래와 같은 문제가 있었습니다. 윈도우의 Command Prompt에서 리눅스의 명령어와 쉘을 사용할 수 있도록 해주는 프로그램은? 1. GDB 2. KVM 3. GOW 4. PAM 5. LVM 정답을 아시나요? 저는 찍어서 맞추었습니다.(^^) 답은 3번입니다. GNU On Windows의 약자라고 합니다. 저도 처음 알았습니다. Gow – The lightweight alternative to Cygwin 보통 윈도우에서 Linux와 비슷한 환경을 만들 때…
Read more

전략의 보안과 리눅스

1. 어떤 설명회 자리였습니다. 고객이 질문을 하더군요? “가상화든 아니든 하드웨어 자원을 제공 받더라고 다른 사람이 접근가능하냐?” “시스템 관리자가 권한을 관리를 합니다.” “그러면 내가 개발한 전략이 노출될 위험이 있지않으냐?” “전략이라고 하지만 C언러로 개발한 후 컴파일한 오브젝트파일이라 알기 힘듭니다.” “그래도 불안하니까 흔적을 남기지 않는 방법이 없는지? 혹시 메모리를 이용할 수 있나요?” “음! ?메모리 디스크를 만들면 가능하지만 흔적이 남기 때문에 쉽지 않아보이네요.” 트레이더는…
Read more

ZeroAOS를 위한 환경설정(보충)

1. 어떤 분의 질문입니다. 제가 쓴 글을 따라가다 보면 한곳에서 막힙니다. 그래서 보충을 합니다.  우리가 주변에서 볼 수 있는 OS는 여러종류가 있습니다. 스마트폰에 들어가는 OS도 있고 PC에서 사용하는 OS도 있습니다. 아니면 증권사의 원장시스템에서 사용하는 OS도 있습니다. 스마트폰, PC 및 원장서버는 하드웨어입니다. CPU, Memory 및 주변기기등으로 나뉩니다. OS를 이러한 자원을 이용자의 요청에 따라 활용할 수 있도록 해줍니다.  OS의 핵심은 커널입니다. 이용자가  쉘을…
Read more

ZeroAOS 전략개발을 위한 환경설정 1

1. Linux는 단점이라고 생각한 부분이 장점으로 바뀌면서 성장에 성장을 하는 OS입니다. X.86계열의 CPU와 궁합을 맞추면서 영향력을 확대하고 있습니다. 그런데 이 Linux가 ZeroAOS에게는 약점입니다. 현재 ZeroAOS는 Linux만 지원하기 때문에 윈도우에 익숙한 트레이더들이 불편할 수 있습니다. 전략을 개발할 때도 익수한 VB, C# 가 아니라 C를 사용하여야 합니다.? 왕도가 없습니다. 익숙해지고 친하도록 노력하는 것외에 방법이 없습니다. 그래서 윈도우 환경에서 리눅스를 가지고 놀 수…
Read more

sockperf를 이용한 레이턴시 측정

1. 새로운 장비를 도입하였습니다. OS도 깔았습니다. 어플리케이션을 설치하고 네트워크 연결도 하였습니다. 어플리케이션이 정상으로 돌아가는지를 확인하였습니다. 모든 것이 ‘정상’입니다. 이제 정상 운영을 하면 될까요? 물론 아닙니다 .튜닝을 하는 과정이 남았습니다. 여러가지 영역에서 튜닝이 필요하지만 네트워크성능은 트레이딩에서 무척 중요합니다. 최적화를 하려면 현재 어느 수준인지 측정하여야 합니다. 따라서 측정을 하기 위한 방법이나 도구가 필요합니다. 얼마전 Chelsio vs. Solarflare라는 글을 통해 sockperf라는 제품을 이용한…
Read more