- Today
- Total
목록프로그래밍 (Programming) (71)
Byeo

해당 게시글은 Sigcomm '21 Understanding Host Network Stack Overheads를 번역하여 정리한 글입니다. 이전 게시글 네트워크 스택의 비용에 관한 이해 1 네트워크 스택의 비용에 관한 이해 2 Traffic Pattern 외 고려 요소 논문은 이제 traffic pattern 외에도 TCP/IP 구현, Host의 다른 hardware 등을 고려하여 정리하였다. 목록 순서는 다음과 같다. (f) In-network congestion (내부 네트워크 혼잡) (g) Flow size의 영향 (h) DCA의 영향 (i) IOMMU의 영향 (j) Congestion control (프로토콜의 혼잡 제어 구현)의 영향 (f) In-network Congestion In-netw..

해당 게시글은 Sigcomm '21 Understanding Host Network Stack Overheads를 번역하여 정리한 글입니다. 이전 게시글 네트워크 스택의 비용에 관한 이해 1 네트워크 스택의 비용에 관한 이해 1 Understanding Host Network Stack Overheads 해당 논문은 Sigcomm 21년에 공개된 논문으로, 현존 NIC이 제공하는 기능들, 커널의 네트워크 스택의 작업, 그리고 CPU 사이에서의 연관관계를 잘 정리하였다. [링크] byeo.tistory.com Type of Traffic Patterns 논문은 traffic pattern의 종류를 위 그림처럼 5가지로 구분하였다. (a) single: 1개의 sender와 receiver applicati..

Understanding Host Network Stack Overheads 해당 논문은 Sigcomm 21년에 공개된 논문으로, 현존 NIC이 제공하는 기능들, 커널의 네트워크 스택의 작업, 그리고 CPU 사이에서의 연관관계를 잘 정리하였다. [링크] 초록 Moore의 법칙과 Dennard 스케일링이 더 이상 적용되지 않아 host CPU의 성능은 그대로인 반면, 네트워크의 대역폭은 꾸준히 증가함에 따라 기존의 네트워크 스택은 한계에 도달했다. 대안으로 하드웨어 오프로딩, Linux 커널을 탈피하고 유저 레벨 네트워크 스택을 구현하는 방법, 또는 FPGA와 같이 특별한 하드웨어를 사용하는 방법 등을 선택하고 있다. 해당 논문은 100Gbps를 처리해야 하는 Linux 커널이 'CPU 속도와 개수', '..

NHN Cloud 접속하기 Cloud 시스템은 물리 장비(physical machine)를 내 집(local)에 두지 않고 컴퓨터를 활용할 수 있는 방법 중에 하나이다. NHN Cloud를 활용해서 실제로 인스턴스(instance)를 생성하고 접속하는 과정을 정리해보고자 한다. Instance 생성하기 1. Instance 생성 버튼 NHN Cloud에 가입하고 console에 접속하면 인스턴스 생성 버튼이 보일 것이다. 해당 버튼을 클릭한다. 2. OS와 이름 설정 및 keypair 다운로드 생성하고자 하는 Instance의 OS를 선택한다. 보통 Ubuntu를 많이 선택하므로 Ubuntu server 20.04 LTS를 선택하였다. (18.04는 out-of-date) 인스턴스 이름에는 본인이 원하는..

이 포스트는 [iovisor-bcc tutorial]을 참고하였습니다. 목차 Lesson 1. Hello world Lesson 2. sys_sync() Lesson 3. hello_fields.py Lesson 4. sync_timing.py Lesson 5. sync_count.py Lesson 6. disksnoop.py Lesson 1. Hello world bcc를 빌드 하면, examples/hello_world.py가 존재합니다. sudo ./examples/hello_world.py 위와 같이 실행하고 다른 session에서 process를 생성하는 명령어를 수행하면 아래와 같이 출력되는 것을 확인할 수 있습니다. ./a.out 은 간단히 fork를 하나 실행하는 프로그램입니다. 이 때 역..

Space & Tab 여타 editor가 그렇듯, vim도 tab은 여러 개의 space를 대략 8개정도로 묶어서 표기해줍니다. (환경마다 다를 수 있음) 그런데 tab이 너무 많이 쓰이는 코드의 경우, 다음처럼 가독성이 떨어지는 문제가 발생합니다. 이를 위해 다음 명령어를 통해 tab의 space 개수를 조절할 수 있습니다. set tabstop=4 다음은 기본적으로 tabstop이 8인 코드입니다. 사실 이 정도도 괜찮지만, tab depth가 더 많아지는 경우 가독성이 현저히 낮아질 수 있습니다. 여기서 tabstop을 4로 바꿔보면 위와 같이 가독성이 조금 더 향상된 걸 볼 수 있습니다. set softtabstop=4 tabstop은 시작 당시에 있던 tab에만 적용이 된다면, softtabst..
목차 코드 해석 안되는 경우 (not working) vim을 사용하다 보면 이전에 편집했던 위치를 기억하는게 편한 경우가 많습니다. 특히, 작성한 코드가 길 때 매우 편해집니다. 코드 이를 위해서는 다음 코드를 ~/.vimrc 에 넣으면 됩니다. autocmd BufReadPost * \ if line("'\"") > 0 && line("'\"")

4. Vimrc-3 (Folding) 이번 포스트에서는 코딩의 능률을 올릴 수 있는 folding에 대해서 정리해보도록 하겠습니다. 목차 Folding (폴딩) 이란? Folding Enable Folding Method Folding 단축키 Folding Configuration 이 글은 [vim tips: folding fun] 문서를 참고하여 제작하였습니다. Folding (폴딩) 이란? 폴딩이란, 아래 사진과 같이 특정 코드 영역을 숨기는 기능을 의미합니다. 만약 prime()함수가 기존에 다음과 같이 있었다고 가정해보죠. 개발 과정에서 이 prime함수를 더 이상 수정할 일이 없다면 숨겨도 괜찮을 것입니다. 이 때 폴딩을 하면 다음과 같이 코드 일부를 숨길 수 있습니다. 코드가 짧으면 모두 펼쳐..

3. Vimrc-2 (UI) 목차 줄 번호 표시하기 Typing 중인 명령어 표시 현재 cursor에 밑줄 긋기 현재 row, col 표기 wildmenu 표시 검색 결과 highlight 즉시 검색하기 Vim 정렬 이번 포스트에서는 UI configuration과 관련된 내용들을 간단하게 다뤄보고자 합니다. 줄 번호 표시 set number ( set nonumber) set number 명령어를 통해 좌측에 줄 번호 표기 여부를 바꿀 수 있습니다. Typing 중인 명령어 표시 set showcmd set showcmd 명령어는 맨 밑줄에 현재까지 친 커맨드를 보여줍니다. d2d 와 같이 1글자 이상의 command를 사용할 경우, 지금까지 무엇을 타이핑 했는지 쉽게 알 수 있겠죠. 현재 Cursor..

2. Vimrc-1 (테마) 이번에는 여러 포스트에 걸쳐 vim을 좀 더 다채롭게 사용할 수 있도록 여러가지 환경들을 바꿔보는 방법에 대해서 다루고자 합니다. 목차 Vimrc란? Vim의 색깔, 테마 바꾸는 방법 Vim에서 언어 문법 인식시키기 해당 게시글은 일차적으로 [vimrc 포스트] 를 참고하였습니다. 그 외에 부수적인 내용들은 인터넷에서 수합하거나 직접 실행해서 작성 하였습니다. Vimrc란? vimrc란 vim runtime configuration의 약자로, vim을 시작할 때 마다 파일 내에 있는 configuration을 실행해줍니다. vimrc는 보통 ~/.vimrc ( '~'는 현재 user의 home directory, '.'는 숨김파일)에 작성합니다. 없는 경우도 간혹 있는데, 이..