본문 바로가기

server4

[Linux] 리눅스 서버에서 장애 발생 시 대응 방안 - 리눅스 server에 문제가 생기면 어디서부터 해결할 지 알아보자 - 들어가기 전, sysstat package를 설치하고 가자. (시스템 정보 확인을 위해) $ sudo yum install sysstat $ sudo apt install sysstat 0) Error log 확인 - "dmesg | tail" 로 error log 확인 - dmesg 만 입력하면 모든 커널 msg를 출력하므로, tail 을 넣어 마지막 10줄만 출력하자. - "dmesg -w" 를 입력하면 실시간 로그 확인 가능. $ dmesg | tail [1880957.563150] perl invoked oom-killer: gfp_mask=0x280da, order=0, oom_score_adj=0 [...] [188095.. 2022. 10. 6.
[Knowledge] Web 서버 vs Socket 서버 차이 [업데이트 예정] - Socket 서버 방에 들어가서 개발자들과 이야기하다가, 내 지식과 그들의 지식이 많이 다른걸 깨달았다. - 단순히 내가 많이 몰라서 그런가보다 싶었던 것들이, 사실 전문성이 아예 다름을 인지하고 글을 쓴다. [Socket Server] - 프로그래머가 하는 일 * TCP/IP, UDP/IP Socket을 직접 다루거나, 그것을 직접 다루는 엔진을 사용한 프로그래밍 - 특성 * OS Socket api를 이용한 Server. 이러한 api에 멀티 스레드, 메모리 관리 등 module을 붙여 Server를 제작. * Socket Server가 Http Web Server를 포함함. Server가 원할 때 Client에 Packet을 보내거나, Packet 내용을 원하는대로 지정 가능. * 커넥션 풀을 .. 2022. 8. 6.
[Web] 대용량 트래픽 시스템 설계 - 이런 질문을 들었다. Server를 설계할 때 user가 100명이라면 어떻게 만들 것인가? 1000명이라면? 1만명이면? ** AWS의 Auto Scaling 은 고려하지 않는다. (Cost 관리 및 User 증가에 따른 DB의 I/O 속도 감소를 제어 불가) [1~100] - Traffic 을 고려하지 않아도 됨. - 서비스 Application 과 Database를 직접 연결 - 서버 Application 에서 request를 받고, db를 local에 호출하여 결과를 보냄 [100~1K] - 항상 일정한 수의 user가 들어오면 Scale up(수직 확장, 서버 스펙 업그레이드) 을 한다. - 불규칙하게 들어오면 Scale out(수평 확장, 서버 수 증가) 를 한다. - Scale out 을.. 2022. 8. 3.
[Network] 4Way Handshake 의 마지막 응답 확인은 어떻게 이뤄지나? * FIN > ACK > FIN > ACK 로 주고 받음 * 서버가 보낸 FIN에 대한 응답이 빨리 오지 않으면 server가 재전송(FIN + ACK) ==> 그렇기에 재전송 시간보다 길게 대기했다가, 아무것도 안 오면 종료 * Client 는 확인 의미로 ACK를 보내고 TIME_WAIT 상태가 되며, Server는 ACK 패킷을 수신 후 CLOSED 상태가 된다. Client는 2MSL(Maximum Segemnt Life) 만큼의 시간이 지난 후 CLOSED 된다. 개발자 오픈카톡방 2022. 7. 14.