Điều gì gây ra các quá trình này sleeping
mà tôi thấy trong top
? Nếu tôi gọi hàm sleep()
của PHP, điều đó sẽ thêm vào số sleeping
tôi thấy trong số top
? Có bất kỳ nhược điểm nào để có số cao trong sleeping
không?Trong * nix, nguyên nhân gây ra "ngủ" trong lệnh hàng đầu?
Trả lời
Quá trình đang ngủ khi bị chặn, đang đợi thứ gì đó. Ví dụ: có thể gọi là read()
và đang chờ dữ liệu đến từ luồng mạng.
sleep()
thực sự là một cách để quá trình ngủ của bạn được một thời gian. Tuy nhiên, ngủ là trạng thái bình thường của tất cả các quá trình tính toán bị ràng buộc nặng nề - ngủ thực chất là quá trình thực hiện khi nó không làm bất cứ điều gì khác. Đó là trạng thái bình thường của các vấn đề đối với hầu hết các quy trình của bạn đang ngủ - nếu đó là không phải là trường hợp, nó có xu hướng chỉ ra rằng bạn cần thêm mã lực CPU.
Chúng là các quá trình hiện không chạy trên CPU ngay bây giờ. Điều này không nhất thiết phải là một điều xấu. Ví dụ:
Nếu bạn có số lượng lớn (10.000 trên hệ thống máy chủ), lượng bộ nhớ, vv được sử dụng để theo dõi chúng có thể làm cho hệ thống kém hiệu quả hơn cho các quy trình không ngủ.
Nếu không, không sao.
Hầu hết các hệ thống máy chủ thông thường đều có từ 100 đến 1000 phần lớn thời gian; Đây không phải là vấn đề lớn.
Chỉ vì họ không làm bất cứ điều gì ngay bây giờ không có nghĩa là họ sẽ không, rất sớm. Giữ chúng trong bộ nhớ, sẵn sàng, giảm độ trễ khi chúng được yêu cầu.
Quy trình ngủ giống như quy trình bị tạm ngưng. Một quá trình ngủ khi:
- Nó đang làm một hoạt động I/O (chặn cho I/O)
- Khi bạn đặt nó vào giấc ngủ bằng cách ngủ()
Tình trạng của bất kỳ quá trình nào có thể là:
- Sẵn sàng: khi nó sẵn sàng để thực hiện và trong hàng chờ cuộc gọi xử lý có mức độ ưu tiên cụ thể
- Ngủ: Khi nó đang chạy và nó đã bị chặn cho hoạt động I/O hoặc khi thực hiện chế độ ngủ()
- Chạy: Khi bộ xử lý thực thi quy trình nó sẽ chạy.
Status Ý nghĩa
R Runnable
T Ngưng
P Chờ trên Pagein
D Chờ trên I/O
S Ngủ < 20 giây
tôi Nhàn rỗi - ngủ> 20 giây
Z Zombie hoặc không còn tồn tại
Để đi sâu vào chi tiết hơn một chút ở đây, tình trạng S
nghĩa quá trình đang đợi trên bộ hẹn giờ hoặc thiết bị chậm, trong khi trạng thái D
có nghĩa là thiết bị đang chờ thiết bị nhanh. Thiết bị nhanh và thiết bị chậm không được xác định rõ ràng, nhưng nhìn chung, tất cả các thiết bị nối tiếp, mạng và thiết bị đầu cuối đều là thiết bị chậm, trong khi đĩa là thiết bị nhanh.
- 1. Nguyên nhân gây ra lỗi ENOTCONN?
- 2. Sụp đổ trong drawRect - nguyên nhân gây ra nó?
- 3. Nguyên nhân gây ra lỗi SXSTrace "StartTrace failed ... Unknown Error"?
- 4. Xóa hàng trong bảng nguyên nhân Locks
- 5. R: phép nhân đơn giản gây ra tràn số nguyên
- 6. Nguyên nhân gây ra "vi phạm giao thức kênh Tcp mong đợi phần mở đầu" trong .NET Remoting?
- 7. Nguyên nhân gây lỗi socket Python?
- 8. Nguyên nhân gây ra java.lang.IllegalStateException: Bài đăng quá lớn trong tomcat/mod_jk
- 9. Nguyên nhân gây ra lỗi "ArgumentError (lỗi định dạng kết xuất)"?
- 10. Tìm nguyên nhân cho các chủ đề chờ/ngủ
- 11. org.springframework.dao.DataIntegrityViolationException misreporting nguyên nhân?
- 12. đầu ra php với chế độ ngủ()
- 13. Lệnh Ngủ trong T-SQL?
- 14. Làm thế nào để tìm nguyên nhân gây ra ngoại lệ nếu loại là Throwable
- 15. Lệnh Goto trong mã biên dịch gây ra sự cố
- 16. Danh sách định dạng với lệnh cột trong * nix
- 17. Nguyên nhân gây ra VS 2010 SP1 WPF Designer bị lỗi?
- 18. cách gỡ lỗi để biết nguyên nhân gây ra sự cố IE8?
- 19. cách tìm hiểu nguyên nhân gây ra "cv :: Ngoại lệ tại vị trí bộ nhớ"?
- 20. Nguyên nhân gây ra lỗi góc: "Lỗi: Không có module: ngCookies"?
- 21. Có ai biết nguyên nhân gây ra lỗi này không? VC++ với VisualAssert
- 22. Hàng loạt đầu vào và đầu ra trong Mathematica?
- 23. Làm cách nào để theo dõi nguyên nhân gây ra lỗi máy chủ nội bộ 500?
- 24. Nguyên nhân gây ra lỗi thực thể không thể xử lý 422 trong Rails 3 là gì?
- 25. Kiểm tra đầu ra của lệnh trong tập lệnh shell
- 26. Cách giữ cửa sổ đầu ra lệnh trong vim
- 27. Lệnh ngủ trong tập tin batch?
- 28. Nguyên nhân của InterruptedException
- 29. Đầu ra có điều kiện trong Tài liệu Nhân sư
- 30. Lọc đầu ra lệnh Linux
Các quy trình đang ngủ vì chúng không có gì để làm vào lúc này. – some