https://youtu.be/VmclwfKzNO0?si=KnjGslnz3YJxiWk2 DMA(Direct Memory Access)기술을 적용할 경우 불필요한 I/O가 없어지며 성능이 좋아집니다. 보통은 NIC(Network Interface Card)가 DMA를 지원합니다. 또한 이러한 특성을 활용해 빠른 속도로 소켓 통신이 가능합니다.Direct Memory Access(DMA)와 고성능 데이터 전송DMA(Direct Memory Access)를 이야기할 때 항상 따라다니는 키워드는 '고성능'이다. DMA는 컴퓨터의 메모리, 즉 RAM의 일부를 장치를 위해 예약하는 방식이다. 컴퓨터의 메모리는 RAM과 CPU에 위치하며, CPU에는 캐시 메모리와 레지스터 메모리가 포함된다.모든 데이터 전송 과정에서..
https://www.youtube.com/watch?v=V4lp6iGoUFY&list=PLXvgR_grOs1DGFOeD792kHlRml0PhCe9l&index=5 인터럽트의 종류 입출력 인터럽트 (I/O interrupt)입출력 장치가 데이터 전송을 "요구" 하거나, 전송이 "끝나" 다음 동작이 수행되어야 할 경우입출력 데이터에 이상이 있는 경우 내부 인터럽트잘못된 명령이나 잘못된 데이터를 사용할 때 발생하며 Trap이라 부른다.프로그램 검사 인터럽트 (Program Check Interrupt)Division by zero : 컴퓨터의 연산은 덧셈,뺄셈으로 작동한다. 0으로 나눌 경우 무한루프에 빠지게 되며 CPU 가 하드웨어적 손실을 입게 됨Overflow/Underflow기타 Exception 컴..
포트 번호 없애기 (5000) sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000이 명령어는 eth0 인터페이스를 통해 들어오는 TCP 프로토콜의 포트 80(일반적으로 HTTP 트래픽)으로 들어오는 모든 트래픽을 포트 5000으로 redirect 하는 것이다. 이 때 app.py를 재시작하면 포트포워딩이 제대로 되지 않는 경우가 있는데, 이는 iptables 규칙이 기본적으로 메모리에 저장되기 때문이라고 한다. iptables 규칙을 영구적으로 유지하려면 이를 파일에 저장하고, 시스템이 부팅될 때 해당 파일에서 규칙을 불러와야 한다. 이번 경우에는 ssh 명령어와 aws key 를 사용해 서버에..
Latency alone is not a deciding factor. If the volume of messages is relatively low (e.g. monitoring network failures) HTTP streaming or polling may provide an effective solution. It is the combination of low latency, high frequency and high volume that make the best case for the use WebSocket. https://docs.spring.io/spring-framework/docs/5.0.4.RELEASE/spring-framework-reference/web.html#websock..