리눅스는 평균 부팅시 얼마나 많은 데이터를 읽습니까?


9

가상 콘솔 쉘 프롬프트를 얻기 위해 새로 설치된 바닐라 Linux 시스템 (예 : 32 비트 CentOS 5.10)이 얼마나 많은 데이터를 읽는지 궁금합니다. 모든 구성 파일 읽기, 바이너리로드, 커널 이미지 등을 알고 있습니다.

크기 차수 추정치를 찾고 있습니다. 프로세스의 세부 사항과 관련하여 Linux 부팅이 크게 다르다는 것을 알고 있습니다. 우리는 10Mb를 말하고 있습니까? 100MB? 1GB?


5
왜 물어봐?
Zoredache

2
가변성은 시스템간에 수십 배가 될 수 있습니다-커널 및 드라이버 로딩은 부팅 프로세스의 가장 작은 부분이며 시스템의 init 스크립트는 문자 그대로 로그인 프롬프트를 표시하기 전에 무엇이든 할 수 있습니다 . 해결하는 데 도움이 될 수있는 실제적이고 실질적인 문제와 관련하여 처리중인 상황을 설명하십시오.
voretaq7

1
@amn 당신은 당신의 초기 질문에 이유를 넣을 수 있습니까? 상황에 도움이 될 것입니다. 사람들이 비슷한 질문을하는 또 다른 이유는주기 제한 스토리지를 사용하는지 여부입니다. 자세한 내용은 항상 좋습니다.
ewwhite

8
@ewwhite 저는 수백 개의 Linux 시스템을 부팅하고 있으며 시스템 내용의 95 %가 동일하며 동일하게 유지됩니다. 시스템은 복제본입니다. 파일 시스템의 동일 / 읽기 전용 공유 부분을 NFS 스토리지로 오프로드하고 거기에서 마운트 한 다음 부팅합니다. / var, / tmp 및 / home과 같이 파일 시스템의 쓰기 가능한 부분 만 각 시스템에 로컬로 유지됩니다. 잠재적으로 수백 대의 시스템이 "클러스터"의 일부로 동시에 부팅 될 수 있으므로 부팅하는 동안 액세스 된 NFS 스토리지 링크가 병목 현상이 발생하는지 추정해야합니다.
amn

5
I need to estimate...그런 다음 하나를 수행하고 측정하십시오.
symcbean

답변:


8

하나의 시스템을 설치하고 부팅 한 후 /sys/block/${DEV}/stat예 를 들어 블록 계층 통계를 확인하십시오 /sys/block/sda/stat.

문서 에서 인용 :

stat 파일은 공백으로 구분 된 11 개의 10 진수 값을 포함하는 한 줄의 텍스트로 구성됩니다. 필드는 다음 표에 요약되어 있으며 아래에 더 자세히 설명되어 있습니다.

Name            units         description
----            -----         -----------
read I/Os       requests      number of read I/Os processed
read merges     requests      number of read I/Os merged with in-queue I/O
read sectors    sectors       number of sectors read
read ticks      milliseconds  total wait time for read requests
write I/Os      requests      number of write I/Os processed
write merges    requests      number of write I/Os merged with in-queue I/O
write sectors   sectors       number of sectors written
write ticks     milliseconds  total wait time for write requests
in_flight       requests      number of I/Os currently in flight
io_ticks        milliseconds  total time this block device has been active
time_in_queue   milliseconds  total wait time for all requests

섹터 읽기, 섹터 쓰기

이 값은이 블록 장치에서 읽거나 쓴 섹터 수를 계산합니다. 문제의 "섹터"는 표준 UNIX 512 바이트 섹터이며 장치 또는 파일 시스템 별 블록 크기가 아닙니다. I / O가 완료되면 카운터가 증가합니다.

이 하나의 라이너를 사용하여 바이트 수를보다 쉽게 ​​얻을 수 있습니다.

awk '{printf("read %d bytes, wrote %d bytes\n", $3*512, $7*512)}' /sys/block/vda/stat

Scientific Linux 6.1 i386에 대한 결과

Scientific Linux 6.1 i386 (RHEL과 유사)을 실행하는 KVM / qemu 가상 머신에서이를 테스트했습니다 . acpid, auditd, crond, network, postfix, rsyslog, sshd 및 udev-post 서비스가 활성화되었습니다. 스왑은 별도의 디스크에 있으므로 고려되지 않습니다.

로그인 프롬프트가 나타난 후 몇 초 후에 SSH를 사용하여 85 개의 부트에 대한 통계는 다음과 같습니다.

    Name            Median   Average   Stdev
    -------------   ------   -------   -----
    read I/Os       1920     1920.2    2.6
    read merges     1158     1158.4    1.8
    read sectors    85322    85330.9   31.9
 >> read MiBytes    41.661   41.665    0.016
    read ticks      1165     1177.2    94.1
    write I/Os      33       32.6      1.7
    write merges    64       59.6      7.4
    write sectors   762      715.2     70.9
 >> write MiBytes   0.372    0.349     0.035
    write ticks     51       59.0      17.4
    in_flight       0        0.0       0.0
    io_ticks        895      909.9     57.8
    time_in_queue   1217     1235.2    98.5

부팅 시간은 약 20 초였습니다.


2
이것은 처리량 요구 (속도)가 아닌 전송 요구 (수량)만을 제공하는 것으로 보입니다. 가동 시간으로 나눠 평균 수를 얻을 수 있습니다.
voretaq7

15

귀하는 귀하의 의견에 netboot / 네트워크 루트 환경을 평가하고 있다고 말합니다.

가장 먼저 인식해야 할 것은 "vanilla"와 같은 것은 없다는 것입니다. CentOS 5.10을 전혀 변경하지 않고 바로 실행할 수는 없습니다. 피스타치오에 곁들인 적어도 딸기).

특정 환경 (실제로 중요한 것)에 대한 답변을 원할 경우 NFS 서버와 클라이언트 시스템을 설정하고 부팅하여 측정해야합니다.

  1. 양도 (수량)
  2. 처리량 (속도)

두 값 모두 성능에 매우 중요합니다. 또한 특정 시점에 여러 클라이언트 를 설정하고 일상적인 시스템 사용을 시뮬레이션 할 때 NFS 서버 / 네트워크에 어떤 종류의 정상 상태 요구가 있는지 확인하기 위해 시스템의 정상적인 사용을 시뮬레이션하고 싶을 것입니다. 작업.

참조 : 용량 계획에 대한 우리의 시리즈 우리가 NFS에 대해 구체적으로 이야기하지 않지만,의 일반 원칙 "을 빌드, 테스트는, 스트레스는"적용 -.


1
바닐라 아이스크림이 있으면 바닐라 리눅스가 있습니다! ;-) 진지하게, 그것은 변경되지 않은 CentOS 5.10이며, 변경된 것은 쓰기 가능한 파일 시스템의 일부입니다. NFS에서 마운트 되지 않을 것입니다. 그래서 그것은 중요하지 않습니다-예, 거대한 Postgres 데이터베이스가 있습니다. / var / lib이지만 / var은 NFS에서 마운트되지 않지만 로컬 실제 시동 디스크에 있습니다. 그리고 그것을 프로파일 링하고 싶다면, 여기서 질문하지 않을 것입니다 :-)
amn

10
@amn 죄송 합니다만 프로파일 링을하고 싶지는 않지만,해야 할 일을해야합니다. 해당 번호를 엉덩이에서 빼낼 수 없습니다. 귀하의 솔루션 (NFS 루트)은 건전하고 시간이 테스트 된 솔루션이며, 솔직히 문제없이 블라인드로 배포 할 수 있습니다 (수천 개의 Sun Microsystems 환경은 NFS- 루트 및 넷 부팅의 시대에 그처럼 블라인드로 배포되었습니다) 솔라리스 & 잘 작동했습니다). 성능에 대해 걱정이 되더라도 특정 환경에 대한 수요와 병목 현상을 파악하기 위해 프로파일 링을 수행해야합니다. 이것이 바로 우주의 길입니다.
voretaq7

딸기 +1
alexyorke

1
@ voretaq7 프로파일 링 논증으로 논쟁 할 수는 없었습니다. 소매를 올리고 NFS를 설정하기 전에 다음으로 가장 좋은 것을 원했습니다. 소중한 의견을 보내 주셔서 감사합니다.
amn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.