본문 바로가기

backup

HFT 시스템 트레이딩 환경 구축 - 레드햇 엔터프라이즈 리눅스 설치기

몇날 며칠 레드햇 엔터프라이즈 리눅스 가지고 완전 씨름을 하였다.


시스템 트레이딩 환경을 구측 하는데 리눅스이고 더욱이 레드햇 엔터프라이즈 리눅스이냐.. 


리눅스는 윈도우와 달리 리얼타임 OS로 속도가 더 빠르고, OS차원에 커스터마이징이 가능하다.

그래서 HFT 시스템 트레이딩을 위한 환경을 구축할 수가 있다. 물론 많이 알아야 하겠지만 말이다.


하지만, 이런 것보다 가장 큰 이유는 솔라플레어 네트워크 카드를 쓰기 위해서이다.

많은 HFT 시스템 트레이딩 업체들에서 쓰는 솔라플레어 네트워크 카드는 대표적인 10기가바이트 네트워크 카드이다.


10기가 바이트 네트워크 카드는 100메가 바이트 네트워크 카드는 한번에 처리하는 데이타양은 같다. 그말은 10기가 바이트가 100메가 바이트 네트워크 카드가 1번 처리할때 10기가 바이트 네트워크 카드는 100번을 더 처리를 한다는 뜻이다.





또 이것이 무엇을 의미하는가 하면 HFT 시스템을 구축할때 가장 시간을 잡아 먹는 단위가 바로 네트워크 카드 대기시간인데, 이게 나노세컨드 단위로 확 내려가버리게 된다. 물론 이걸로 성능 개선을 할 정도가 되려면 네트워크 카드에서 시세 받아서 주문 나가기까지 10마이크로 세컨드 이하의 시스템의 경우이다.


솔라플레어의 그리고 엄청난 장점중 하나는 네트워크로 받은 데이터를 메모리로 바로 올려주는 오픈온로드라는 바이패스 기술을 쓸 수 있다. 이걸로 다른 처리 없이 바로 메모리에 있는 데이타를 쓸 수 있게 된다.

이 솔라플레어는 윈도우에서도 사용이 가능하긴 하지만, 기술 문서나 레퍼런스가 가장 풍부하고, 여러가지 여러가지로 최적화 되어 있고 최적화된 설치법을 알려주는 것이 레드햇 엔터프라이즈 리눅스이다.


그리고 가능한 최하위 수준에서 성능을 끌어올리는 프로그래밍을 하기 위해서 레드햇 엔터프라이즈 리눅스로 갈아타기로 한 것이다.






운영되는 서버에서는 Desktop을 설치하지 않겠지만, 개발환경을 구축하기 위해서 현재 쓰고 있는 컴퓨터에 SSD 하드디스크 추가해서 설치를 하였는데, 처음부터 완전 고생이었다.


USB로 리눅스 설치 프로그램 옮겨서 설치를 하는데 그냥 블랭크 화면에 커서만 깜빡이는 것이다. 시간 지나면 넘어가나? 싶어서 기다려도 안되고, 뭐가 문제인지 알 수가 없어서 USB로 다시 옮기고, 몇 번을 삽질해도 안되고, 다시 껐다켜고 하는 것이 힘들어서 스마트폰으로 왜 안되는지 검색을 해가며 보니 그래팩카드가 문제라는 것이다. 그리고 누가 BIOS 업그레이드 해주니 되었다는 말이 있어서,

BIOS 업그레이드 그 뒤에 잘 진행이 되었다. 감격 ㅠ.ㅜ


하지만 삽질은 여기서 끝나지 않았다.


데스크탑중에 그놈을 설치하고 부팅을 하는데, 밑에 하얀 줄만 나오고 진행 중단.. ㅋ

이것도 몇 번 다시 설치하면서 또 스마트폰으로 삽질 검색.. 어디서 X윈도우 어쩌구 저쩌구 이야기가 있었다.


X윈도우를 추가로 설치해야되는구나.. 싶어서 다시 처음부터 설치하면서 X윈도우를 깔았다.

그랬더니 이제 데스크탑 환경이 뜬다. ㅠ.ㅜ


그러나 여기서 끝나지 않았다.


너무 미니멀하게 설치되어서 아무것도 할 수 있는 것이 없었다. 가뜩이나 레드햇 엔터프라이즈는 처음인데 무엇을 어떻게 해야할지 전혀 모르겠다. ㅠ.ㅜ

결국 다시 몇 번 설치하면서 데스크탑 옵션을 알아내고, 그렇게 설치 노하우는 점점 쌓여갔다. ㅋ


그래서 결국 그놈환경에서 제대로 동작 완료... 하지만, 아직 장벽은 남아있었으니..





개발환경 구축하기..  qt깔고, intel c++ complier깔고, boost깔고(boost는 보니 기본으로 있었다.) elipse와 연동시키고, YUM 레파지토리는 처음 써보는데, 이것 깔고 최적화시키는데도 엄청 고생..


그러다가 다른 것 좀 깔아보려고 페도라 YUM 레파지토리에서 뭐 좀 설치했다가 시스템이 완전 엉망이 되었다. ㅠ.ㅜ 결국 처음부터 포맷하고 다시 설치 ㅠ.ㅜ


뭐 이렇게 며칠 보내고,  기본적인 소켓 통신 테스트하고, FIX엔진 새로 만들고 그러다 보니 며칠이 지나있다.

그리고 레드햇 리눅스와 친해지기 위해서(?) 게임 등등의 놀이기구도 설치하고 ㅋ 다른 윈도우 컴에는 원격으로 붙고, 레드햇 리눅스랑 열심히 친해지려고 노력 하는 중이다.


이번에 그래도 FIX엔진 업그레이드 하면서 2마이크로세컨드 정도의 성능을 보여주고 있어서, 조금만 더 하면 전체 10마이크로세컨드 이하는 쉽게 구축이 가능할 듯하다 10마이크로세컨드 이하면 그래도 HFT 시스템 트레이딩으로 어느정도 경쟁력은 생길 듯.. 아직 업그레이드 할 수 있는 옵션들이 남아 있으니 계속 더 삽질을.. ㅋ