Tại sao các chương trình phụ thuộc vào thế giới có thể mất nhiều thời gian để chạy?


9

Tại sao lệnh "hiển thị kề" lại mất nhiều thời gian để chạy (theo thứ tự phút) trên Phần mềm Cisco IOS, Phần mềm 7200 (C7200P-SPSERVICEK9-M), Phiên bản 12.4 (4) XD5, PHẦN MỀM LIÊN QUAN (fc1)? Các bộ định tuyến là một bộ định tuyến cạnh Internet chạy BGP? "(5)", "(10003)" hoặc "(75845)" có nghĩa là gì sau các địa chỉ? Dường như liệt kê hầu hết các địa chỉ trên mạng được kết nối trực tiếp / 23. CPU là <2% và bộ nhớ dường như không phải là nguyên nhân cho việc này.

r-x-y-edge1#sh adjacency
Protocol Interface                 Address
IP       GigabitEthernet0/2        x.67.155.9(5)
IP       GigabitEthernet0/2        x.67.155.8(5)
IP       GigabitEthernet0/2        x.67.155.11(5)
IP       GigabitEthernet0/2        x.67.155.10(5)
IP       GigabitEthernet0/2        x.67.155.13(5)
IP       GigabitEthernet0/2        x.67.155.12(5)
IP       GigabitEthernet0/2        x.67.155.15(5)
IP       GigabitEthernet0/3        172.31.4.130(10003)
IP       Serial1/0                 point2point(75845)
...
<truncated>

CPU utilization for five seconds: 2%/1%; one minute: 3%; five minutes: 3%

Processor Pool Total:  864815572 Used:  547631528 Free:  317184044
      I/O Pool Total:   67108864 Used:    4520592 Free:   62588272

Có cách nào để làm gián đoạn việc thực thi lệnh này không khi đóng phiên vì Ctrl- ^ x không có tác dụng gì?


Bạn đã thử các phiên bản iOS khác nhau chưa? Có phải luôn luôn mất nhiều thời gian để hiển thị kết quả hoặc nó mới bắt đầu xảy ra?
Adam Lovless

Ctrl-Shift-6 là chuỗi ngắt trong IOS.
Yosef Gunsburg

1
Xin hãy giải thích về việc "show adj" mất bao lâu
Mike Pennington

1
Phiên bản mã đó không chỉ cũ (hơn 4 năm) mà ngay cả trong chuyến tàu đó cũng được thay thế nhiều lần. Chắc chắn đã có các bản sửa lỗi và thay đổi đối với việc xử lý CEF và sẽ có xu hướng đề xuất rằng bạn nên khắc phục sự cố trên một bản sửa đổi mã gần đây (hoặc cuối cùng trong xe lửa).
rnxrx

1
@rnxrx, tôi mong đợi ít nhất một nhận xét về tuổi của phiên bản mã đó. Upvote cho bạn.
generalnetworkerror

Câu trả lời:


8

Bạn đã kiểm tra xem bạn có bị vô hiệu hóa tra cứu tên miền không? ( no ip domain lookup)

Có thể là lệnh của bạn mất quá nhiều thời gian để quay lại vì nó đang cố gắng giải quyết tất cả các IP thành tên máy chủ.


Đây là một gợi ý thú vị - Tôi sẽ không nghĩ rằng IOS sẽ cố gắng thực hiện phân giải tên cho các mục nhập phụ thuộc CEF vì phần lớn trong số chúng sẽ đại diện cho các tiền tố có độ dài <32
John Jensen

Tôi đã cấu hình "tên miền ip" và "danh sách tên miền ip", nhưng không có "tên máy chủ ip". Việc đặt một vài máy chủ tên đã giúp hiển thị đầu ra gần như ngay lập tức.
generalnetworkerror

Điều đó thật tuyệt vời! Thích học hỏi những điều mới.
John Jensen

Bắt tuyệt vời @David, cũng không xảy ra với tôi. Không phải là DNS nổi tiếng vì thiếu 'vận chuyển không ưu tiên' dưới dòng VTY :)
ytti

Cảm ơn ý kiến ​​từ các kỹ sư mạng có kinh nghiệm hơn trong nhóm; Tôi không cảm thấy tệ khi đó là một tra cứu ngược khiến tôi bối rối.
generalnetworkerror

4

"(5)", "(10003)" hoặc "(75845)" có nghĩa là gì sau các địa chỉ?

Giá trị trong ngoặc đơn đề cập đến số lần mục nhập FIB trỏ đến mục nhập kề. Đề cập ở đây .


2

Là bộ định tuyến lấy đầy đủ các bảng? Nếu đúng như vậy, tôi đoán tôi sẽ không ngạc nhiên khi phải mất một thời gian dài, xem cách nó phải giải quyết tuy nhiên nhiều mạng đại diện cho một bảng đầy đủ cho giao diện thoát (RIB-> FIB). Cũng nên nhớ rằng 7200 vẫn là một nền tảng chuyển tiếp dựa trên phần mềm. Bạn vẫn còn 3 lớp CEF nữa ở trên về mặt lớp nào nhanh hơn.

Nếu một số lượng lớn các điều chỉnh đó là các phần phụ punt (một mục nhập sẽ phải được chuyển sang phương thức chuyển đổi cấp độ tiếp theo) hoặc các phần phụ của lượm lặt, điều này cũng có thể giải thích tại sao nó mất nhiều thời gian - và tôi tưởng tượng rằng nó rất lớn số lượng trong số họ sẽ là - một lần nữa, vẫn cho rằng đó là một bàn đầy đủ ở đây.

Số trong ngoặc đơn được gọi là tổng số và đại diện cho số lần mà phần phụ được chỉ ra bởi các mục FIB.

Chỉnh sửa: liên quan đến việc hủy lệnh, hãy thử Ctrl + C (lặp đi lặp lại) - đôi khi điều này hiệu quả với tôi vì đã giết các lệnh chạy dài. OTOH nếu tôi biết lệnh sẽ tạo ra nhiều đầu ra, tôi sẽ đặt "độ dài đầu cuối" thành thứ gì đó như "50", theo cách đó tôi có tùy chọn giết lệnh bằng cách phân trang đầu ra.


Xin chào John, tôi không chắc là tôi theo dõi nhận xét về 3 lớp CEF nữa ... bạn có thể nói rõ hơn không?
Mike Pennington

Chắc chắn - nói chung tôi đã nói về các phương thức chuyển đổi "tốt nhất" (theo Cisco), theo thứ tự: phần cứng dCEF -> phần cứng CEF -> chuyển đổi PXF -> CEF dựa trên phần mềm -> chuyển đổi nhanh -> chuyển đổi quy trình
John Jensen

Nhưng tôi không hiểu tại sao lại liên quan đến việc đề cập đến các đường chuyển mạch khác ... AFAIK, các đường chuyển đổi khác hiệu quả hơn trong việc di chuyển các gói không liên quan gì đến thời gian cần thiết để đổ bảng phụ thuộc vào bộ định tuyến 7200.
Mike Pennington

Điều đó có liên quan đến quan điểm của tôi rằng 7200 là một nền tảng dựa trên phần mềm chứ không phải là thứ gì đó như cat65k hay 7600 có CEF trong phần cứng; có vẻ như đó sẽ là một giả định an toàn rằng một nền tảng mà CEF trong phần cứng sẽ thực hiện một chút snappier tại các điều chỉnh bán phá giá, phải không? Hoàn toàn trung thực mặc dù kinh nghiệm của tôi với 7200 sản xuất còn hạn chế - Tôi luôn "đủ may mắn" để làm việc với các hộp đa tầng lớn hơn dựa trên ASIC.
John Jensen
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.