Linux đọc được bao nhiêu dữ liệu khi khởi động trung bình?


9

Tôi tự hỏi tổng cộng có bao nhiêu dữ liệu mà một hệ thống vanilla Linux mới cài đặt (như CentOS 5.10 32 bit) đọc để có được một dấu nhắc trình điều khiển ảo? Bạn biết đấy, đọc tất cả các tập tin cấu hình, tải nhị phân, hình ảnh kernel, v.v.

Tôi đang tìm kiếm các ước tính thứ tự độ lớn. Tôi biết rằng Linux boot rất khác nhau về các chi tiết của quy trình. Có phải chúng ta đang nói 10Mb? 100Mb? 1Gb?


5
Tại sao cậu lại hỏi?
Zoredache

2
Sự thay đổi là (có thể) thứ tự cường độ giữa các hệ thống - tải kernel & trình điều khiển là phần nhỏ nhất của quy trình khởi động và các tập lệnh init trên hệ thống có thể thực hiện bất cứ điều gì theo nghĩa đen trước khi bạn nhận được lời nhắc đăng nhập. Vui lòng giải thích tình huống bạn đang giải quyết theo một vấn đề thực tế, thực tế mà chúng tôi có thể giúp bạn giải quyết.
voretaq7

1
@amn Bạn có thể đặt lý do trong câu hỏi ban đầu của bạn? Nó sẽ giúp với bối cảnh. Một lý do khác mà mọi người sẽ hỏi một câu hỏi tương tự là nếu họ đang sử dụng bộ lưu trữ giới hạn theo chu kỳ. Chi tiết hơn luôn luôn tốt hơn.
ewwhite

8
@ewwhite Tôi đang khởi động 100 máy Linux và 95% nội dung hệ thống của chúng giống hệt nhau và sẽ giữ nguyên - các máy này là bản sao. Tôi muốn giảm tải phần được chia sẻ giống hệt / chỉ đọc của hệ thống tệp, vào bộ lưu trữ NFS, gắn kết nó từ đó và khởi động như thế. Chỉ một phần có thể ghi của hệ thống tập tin, như / var, / tmp và / home, sẽ duy trì cục bộ cho mỗi máy. Vì hàng trăm máy có khả năng có thể khởi động đồng thời như một phần của "cụm", tôi cần ước tính liệu liên kết lưu trữ NFS được truy cập có bị tắc nghẽn trong khi khởi động từ đó không.
Amn

5
I need to estimate...sau đó làm một và đo nó
symcbean

Câu trả lời:


8

Cài đặt một hệ thống, khởi động nó và kiểm tra thống kê lớp khối từ /sys/block/${DEV}/statvd /sys/block/sda/stat.

Trích dẫn từ tài liệu :

Tệp stat bao gồm một dòng văn bản chứa 11 giá trị thập phân được phân tách bằng khoảng trắng. Các trường được tóm tắt trong bảng sau và được mô tả chi tiết hơn dưới đây:

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

đọc ngành, viết ngành

Các giá trị này đếm số lượng các lĩnh vực được đọc từ hoặc ghi vào thiết bị khối này. Các "lĩnh vực" trong câu hỏi là các lĩnh vực UNIX byte byte tiêu chuẩn, không phải bất kỳ kích thước khối cụ thể của thiết bị hoặc hệ thống tập tin. Các bộ đếm được tăng lên khi I / O hoàn thành.

Bạn có thể sử dụng một lớp lót này để có được số byte dễ dàng hơn:

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

Kết quả cho Khoa học Linux 6.1 i386

Tôi đã thử nghiệm điều này trên một máy ảo KVM / qemu chạy Khoa học Linux 6.1 i386 (tương tự như RHEL). Các dịch vụ sau đã được bật: acpid, Audd, crond, mạng, postfix, rsyslog, sshd và udev-post. Việc trao đổi nằm trên một đĩa riêng, vì vậy nó không được tính đến.

Số liệu thống kê cho 85 lần khởi động, được thực hiện từ xa với SSH vài giây sau khi lời nhắc đăng nhập xuất hiện, là:

    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

Thời gian khởi động là khoảng 20 giây.


2
Lưu ý rằng điều này dường như chỉ cung cấp cho bạn nhu cầu chuyển (số lượng), chứ không phải nhu cầu thông lượng (tỷ lệ). Bạn có thể chia cho thời gian hoạt động để có được một số trung bình mặc dù.
voretaq7

15

Bạn nói trong các bình luận của bạn rằng bạn đang đánh giá một môi trường gốc netboot / mạng.

Điều đầu tiên bạn phải nhận ra là không có thứ gọi là "vanilla" - bạn sẽ không chạy CentOS 5.10 ngay khi không có thay đổi (nếu bạn nghĩ rằng bạn đang tự lừa dối mình: NFS Root đã sẵn sàng ít nhất là Dâu, vẩy trên Pistachio).

Nếu bạn muốn có câu trả lời cho môi trường cụ thể của mình (đó là điều thực sự quan trọng), bạn sẽ cần thiết lập máy chủ NFS và máy khách, khởi động nó và đo:

  1. Việc chuyển (số lượng)
  2. Thông lượng (tỷ lệ)

Cả hai giá trị sẽ cực kỳ quan trọng đối với hiệu suất. Có thể bạn cũng sẽ muốn thiết lập một số khách hàng tại một số điểm và mô phỏng việc sử dụng hệ thống bình thường để xem loại nhu cầu ổn định nào họ đặt trên máy chủ / mạng NFS của bạn khi mọi người đang sử dụng các hệ thống như họ hàng ngày công việc.

Xem thêm: Loạt bài của chúng tôi về Lập kế hoạch năng lực - chúng tôi không nói cụ thể về NFS, nhưng áp dụng các nguyên tắc chung của "Xây dựng nó, kiểm tra nó, nhấn mạnh nó".


1
Nếu có vanilla icecream, thì có vanilla Linux! ;-) Nghiêm túc mà nói, đó là một CentOS 5.10 khá chưa được thay đổi và bất cứ điều gì đã bị thay đổi là một phần của hệ thống tập tin có thể ghi được, sẽ không được gắn kết từ NFS, vì vậy nó không phải là một yếu tố - vâng, có một cơ sở dữ liệu Postgres khổng lồ trong / var / lib but / var không được gắn từ NFS mà nằm trên đĩa khởi động vật lý cục bộ. Và nếu tôi muốn cấu hình nó, tôi sẽ không thể đặt câu hỏi ở đây :-)
Amn

10
@amn Tôi xin lỗi, bạn không muốn làm hồ sơ, nhưng bạn phải làm những gì bạn phải làm - chúng tôi không thể rút số áp dụng ra khỏi butts của chúng tôi cho bạn. Giải pháp của bạn (root NFS) là một âm thanh, đã được thử nghiệm theo thời gian và thành thật mà nói, bạn có thể chỉ cần triển khai nó mà không gặp vấn đề gì (hàng chục ngàn môi trường Sun microsystems đã được triển khai như thế trong thời kỳ hoàng kim của NFS-root & Netboote Solaris & làm việc tuyệt vời). Nếu bạn lo lắng về hiệu suất mặc dù bạn sẽ cần phải lập hồ sơ để xác định nhu cầu và tắc nghẽn cho môi trường cụ thể của bạn - đó chỉ là cách của vũ trụ.
voretaq7

+1 cho dâu tây
alexyorke

1
@ voretaq7 Không thể tranh luận với lập luận hồ sơ, và không bao giờ làm. Tôi chỉ muốn điều tốt nhất tiếp theo trước khi tôi xắn tay áo lên và thiết lập NFS. Cảm ơn cho đầu vào có giá trị của bạn.
Amn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.