/ usr / bin / ngẫu nhiên sử dụng nhiều CPU


7

Sử dụng QNX 6.4.1, có một lệnh được gọi là pidin timeshiển thị thông tin về các quy trình. Tôi nghĩ rằng nó có nghĩa là thông tin PID. Trong số những thứ khác, bạn có thể thấy một quá trình CPU đã sử dụng bao nhiêu kể từ khi nó được bắt đầu.

Tôi có một hệ thống hiển thị gần 2 phút sử dụng bộ xử lý /usr/sbin/randomsau khi hệ thống đã chạy được khoảng 10 giờ. Điều đó có vẻ như rất nhiều, vì không có gì trong mã của tôi gọi /usr/sbin/random.

Hiện tại có rất nhiều hoạt động mạng (UDP và TCP), vì vậy tôi tự hỏi liệu trình điều khiển mạng có gọi randomđể có thời gian chờ va chạm động do va chạm gói không.

Lý thuyết này có thể đúng không? (Được rồi, làm thế nào là hợp lý?) Nếu không, có gì khác tôi nên kiểm tra? Hiện tại có những vấn đề về độ trễ với hệ thống này không tồn tại ngày hôm qua và tôi muốn tìm hiểu xem chuyện gì đang xảy ra. Manh mối đặc biệt này có thể giúp cô lập vấn đề.


Cập nhật

Điều tra thêm bằng cách sử dụng nicinfocho thấy không có va chạm gói nào cả. Vì vậy, có lý thuyết thời gian backoff va chạm năng động của tôi. Còn ý tưởng nào khác không?


Cập nhật khác

Mặc dù điều này đã giúp tìm ra câu trả lời cho vấn đề của tôi (SSHD đã sử dụng ngẫu nhiên, tất nhiên !!), hãy cẩn thận. Nếu bạn sử dụng SSH, nó cần hoạt động randomđể cho phép bạn đăng nhập. Vì một số lý do, cuộc gọi trong kịch bản của tôi random.oldkhông hoạt động và tôi chỉ nói về hệ thống nhúng của mình. Vì vậy, hãy cẩn thận.


/usr/bin/randomHệ điều hành không được sử dụng, tôi nghĩ đó là một ứng dụng người dùng in các dòng ngẫu nhiên của một tệp. Nó được sử dụng trong shell script.
Barmar

Nói chung, trình điều khiển kernel không sử dụng thực thi, họ sử dụng các thư viện kernel.
Barmar

@Barmar Lưu ý. Tôi không chắc điều gì đang xảy ra, vì nó là một hệ thống nhúng khá nhẹ không có gì ngoài phần mềm của tôi chạy trên nó.
kmort

@Barmar Đó là trò chơi BSD. QNX có một randomtiện ích không liên quan tạo ra số ngẫu nhiên; Tôi không biết những gì trên hệ thống có thể được sử dụng nó.
Gilles 'SO- đừng trở nên xấu xa'

Bạn có thể bật quy trình kế toán không, điều này sẽ cho bạn biết ai đang chạy lệnh.
Barmar

Câu trả lời:


4

Ý tưởng khắc phục sự cố điên rồ: thực hiện kế toán quy trình của honeypot / người nghèo.

  1. Tạo một bản sao lưu của /usr/bin/random

    cp -p /usr/bin/random /usr/bin/random.bak
    
  2. touch /tmp/who_is_calling_random.log ; chmod 622 /tmp/who_is_calling_random.log

  3. Thay thế /usr/bin/randombằng tập lệnh shell này (lưu ý bạn có thể sử dụng một đường dẫn khác với / tmp nếu bạn cần, nhưng đảm bảo rằng nó có thể ghi được trên thế giới).

    #!/bin/sh
    echo "`date` $USER $$ $@" >> /tmp/who_is_calling_random.log
    /usr/bin/random.bak "$@"
    
  4. chmod 755 /usr/bin/random

  5. Khởi động lại hệ thống.

  6. Xem những gì tập hợp trong nhật ký honeypot. Đây phải là nhật ký của ai / cái gì đứng sau việc sử dụng chương trình ngẫu nhiên.

    tail -f /tmp/who_is_calling_random.log
    
  7. Khôi phục randomtừ bản sao lưu bạn đã thực hiện ở bước 1.

  8. Hệ thống khởi động lại.


Ồ Vì vậy, đây là một ý tưởng hay KHÔNG GIỚI HẠN bạn đang sử dụng SSH làm CÁCH DUY NHẤT để liên lạc với hệ thống nhúng. Sau đó, đó là BAD . Bạn không thể đăng nhập qua SSH mà không cần usr/sbin/randomchạy. Vì vậy, trong khi tôi tạm thời phá vỡ hệ thống của mình vì câu trả lời này, nó cũng khiến tôi tìm thấy thứ gì đó sử dụng ngẫu nhiên nên là điều hiển nhiên. SSHD rất có thể là thủ phạm. Nói ngắn gọn rằng đây là một ý tưởng tốt để thu hẹp vấn đề, HÃY CẨN THẬN và thử nó trên máy ảo trước. Cảm ơn Joshua. :-)
kmort

Đọc lại bình luận của tôi, nó có thể nghe hơi ngớ ngẩn. Không có ý định sủa. Xin chân thành cảm ơn Joshua.
kmort

Không có snark lấy. Vui mừng ý tưởng điên rồ này đã giúp.
Joshua Huber

Kịch bản nên chmod 755, không chmod 777. Tệp tạm thời phải làchmod 622 /tmp/who_is_calling_random.log
Barmar

@Barmar, cảm ơn, bạn nói đúng. Tôi đã cập nhật câu trả lời. Đây phải là lần đầu tiên tôi sử dụng 622.
Joshua Huber
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.