서버는 일하는 사람(CPU), 책상(메모리), 창고(디스크), 우체국(네트워크)이 한 상자에 든 것입니다.
어느 날 여러분에게 쇼핑몰 서버 한 대가 맡겨졌습니다.
주문이 들어오고, 상품 목록이 뜨고, 결제가 돌아갑니다. 잘 돌아갈 때는 아무 문제가 없어요.
그런데 어느 날 갑자기 페이지가 느려집니다. 사장님이 묻습니다.
"왜 느려요? 서버를 더 좋은 걸로 바꿔야 하나요?"
이때 여러분이 답할 수 있어야 하는 것은 이겁니다 —
지금 이 서버에서 누가 놀고 있고, 누가 죽어라 일하고 있는가.
그걸 알려면 서버 안에 누가 사는지부터 알아야 합니다.
서버 안의 네 식구
컴퓨터는 결국 네 가지가 서로 이야기하는 장치입니다.
쇼핑몰 사무실에 비유하면 이렇습니다.
손님이 상품 페이지를 열면 이 넷이 한 바퀴 돕니다.
- 📮 네트워크가 "상품 3번 보여 줘"라는 요청을 받는다
- 🧠 CPU가 그 요청을 읽고 "DB에서 3번을 찾아라"라고 판단한다
- 📦 디스크에서 상품 데이터를 꺼내
- 📋 메모리에 올려 놓고 CPU가 HTML을 만든다
- 📮 네트워크로 손님에게 돌려보낸다
느려졌다는 건 이 다섯 단계 중 어딘가에서 줄이 길어졌다는 뜻이에요.
어디인지 찍어 내는 게 이 20강의 목표입니다.
내 서버에게 직접 물어봅시다
이 강의에는 여러분만의 가상 우분투 서버가 한 대씩 배정되어 있습니다.
아래 셀의 ▶ 실행을 누르면 진짜 서버에 명령을 친 것과 같은 답이 돌아옵니다.
명령을 고쳐 써도 됩니다.
세 줄이 나왔습니다. 지금은 뜻을 몰라도 괜찮아요. 대충 이렇습니다.
x86_64 — 이 CPU가 알아듣는 말(명령어 집합)의 이름
12 — 이 서버는 일을 12갈래로 동시에 할 수 있다
16Gi — 책상이 16기가바이트만큼 넓다
이 숫자 하나하나가 왜 그 값인지, 그리고 그 값이 쇼핑몰이 몇 명을 받을 수 있는지와
어떻게 연결되는지가 앞으로 20강의 내용입니다.
🤔 확인 문제
쇼핑몰 페이지가 느려졌습니다. 다음 중 가장 먼저 해야 할 일은?
해설 병목이 아닌 곳을 아무리 키워도 전체 속도는 그대로입니다. 이걸 암달의 법칙이라고 하고 11강에서 숫자로 확인합니다. 측정이 먼저, 투자는 그다음이에요.
🤔 확인 문제
폰노이만 구조의 핵심 아이디어는?
해설 명령어를 메모리에 둔 숫자로 취급했기 때문에, 배선을 바꾸지 않고 파일만 갈아 끼워도 컴퓨터가 다른 일을 하게 되었습니다. 8강에서 볼 캐시 문제도, 6강의 자기수정 프로그램도 전부 여기서 나옵니다.