Quá trình lưu trữ dịch vụ (svchost.exe) là gì và tại sao có quá nhiều hoạt động?
Nếu bạn đã từng duyệt qua Trình quản lý tác vụ, bạn có thể tự hỏi tại sao có quá nhiều quy trình Máy chủ dịch vụ đang chạy. Bạn không thể giết chúng, và bạn chắc chắn đã không bắt đầu chúng. Vậy họ là ai?
Quá trình dịch vụ lưu trữ phục vụ như một trình bao để tải các dịch vụ từ các tệp DLL. Các dịch vụ được tổ chức thành các nhóm liên quan và mỗi nhóm được chạy bên trong một phiên bản khác nhau của Quy trình lưu trữ dịch vụ. Theo cách đó, một vấn đề trong một trường hợp không ảnh hưởng đến các trường hợp khác. Quá trình này là một phần quan trọng của Windows mà bạn không thể ngăn chạy.
Bài viết này là một phần trong chuỗi liên tục của chúng tôi giải thích các quy trình khác nhau được tìm thấy trong Trình quản lý tác vụ, như dwm.exe, ctfmon.exe, mDNSResponder.exe, conhost.exe, rundll32.exe, Adobe_Updater.exe và nhiều quy trình khác. Không biết những dịch vụ đó là gì? Bắt đầu đọc tốt hơn!
Vậy quá trình lưu trữ dịch vụ là gì?
Đây là câu trả lời, theo Microsoft:
Svchost.exe là tên quy trình máy chủ chung cho các dịch vụ chạy từ thư viện liên kết động.
Nhưng điều đó không thực sự giúp chúng ta nhiều. Cách đây một thời gian, Microsoft đã bắt đầu thay đổi nhiều chức năng của Windows từ việc dựa vào các dịch vụ Windows nội bộ (chạy từ các tệp EXE) sang sử dụng các tệp DLL thay thế. Từ góc độ lập trình, điều này làm cho mã có thể tái sử dụng nhiều hơn và dễ dàng cập nhật hơn. Vấn đề là bạn không thể khởi chạy tệp DLL trực tiếp từ Windows giống như cách bạn có thể tạo tệp thực thi. Thay vào đó, một shell được tải từ một tệp thực thi được sử dụng để lưu trữ các dịch vụ DLL này. Và thế là quá trình Máy chủ dịch vụ (svchost.exe) ra đời.
Tại sao có quá nhiều máy chủ dịch vụ đang chạy?
Nếu bạn đã từng xem phần Dịch vụ trong Bảng điều khiển, có lẽ bạn đã nhận thấy rằng Windows yêu cầu rất nhiều dịch vụ. Nếu mọi dịch vụ đơn lẻ chạy theo một quy trình Máy chủ dịch vụ, một lỗi trong một dịch vụ có thể có khả năng làm sập tất cả Windows. Thay vào đó, chúng được tách ra.
Các dịch vụ được tổ chức thành các nhóm logic có liên quan đến nhau và sau đó một phiên bản Máy chủ dịch vụ duy nhất được tạo để lưu trữ mỗi nhóm. Ví dụ: một quy trình Máy chủ dịch vụ chạy ba dịch vụ liên quan đến tường lửa. Một quy trình Máy chủ dịch vụ khác có thể chạy tất cả các dịch vụ liên quan đến giao diện người dùng, v.v. Ví dụ, trong hình ảnh bên dưới, bạn có thể thấy rằng một quy trình Máy chủ dịch vụ chạy một số dịch vụ mạng có liên quan, trong khi một quy trình khác chạy các dịch vụ liên quan đến các cuộc gọi thủ tục từ xa.
Có điều gì cho tôi làm với tất cả thông tin này không?
Thành thật mà nói, không nhiều. Vào thời của Windows XP (và các phiên bản trước), khi PC có nguồn lực hạn chế hơn nhiều và hệ điều hành không được tinh chỉnh, việc ngăn Windows chạy các dịch vụ không cần thiết thường được khuyến nghị. Ngày nay, chúng tôi không khuyên bạn nên vô hiệu hóa các dịch vụ nữa. Các PC hiện đại có xu hướng được nạp bộ nhớ và bộ xử lý công suất cao. Thêm vào đó là cách các dịch vụ Windows được xử lý trong các phiên bản hiện đại (và dịch vụ nào chạy) đã được sắp xếp hợp lý và loại bỏ các dịch vụ mà bạn nghĩ rằng bạn không cần thực sự không còn ảnh hưởng gì nữa.
Điều đó nói rằng, nếu bạn nhận thấy rằng một phiên bản cụ thể của Dịch vụ lưu trữ - hoặc một dịch vụ liên quan - đang gây rắc rối, như việc sử dụng CPU hoặc RAM quá mức liên tục, bạn có thể kiểm tra các dịch vụ cụ thể có liên quan. Điều đó ít nhất có thể cung cấp cho bạn một ý tưởng về nơi bắt đầu xử lý sự cố. Có một số cách để xem chính xác dịch vụ nào đang được lưu trữ bởi một phiên bản cụ thể của Dịch vụ lưu trữ. Bạn có thể kiểm tra mọi thứ trong Trình quản lý tác vụ hoặc sử dụng ứng dụng bên thứ ba tuyệt vời có tên Process Explorer.
Kiểm tra các dịch vụ liên quan trong Trình quản lý tác vụ
Nếu bạn đang sử dụng Windows 8 hoặc 10, các quy trình sẽ được hiển thị trên tab Quy trình của Chế độ nhiệm vụ của Trình quản lý tác vụ bằng tên đầy đủ của họ. Nếu một quy trình đóng vai trò là máy chủ lưu trữ cho nhiều dịch vụ, bạn có thể thấy các dịch vụ đó bằng cách mở rộng quy trình. Điều này giúp dễ dàng xác định dịch vụ nào thuộc về từng phiên bản của quy trình Máy chủ dịch vụ.
Bạn có thể nhấp chuột phải vào bất kỳ dịch vụ riêng lẻ nào để dừng dịch vụ, xem dịch vụ này trong ứng dụng Bảng điều khiển của Dịch vụ, hoặc thậm chí tìm kiếm trực tuyến để biết thông tin về dịch vụ.
Nếu bạn đang sử dụng Windows 7, mọi thứ sẽ khác một chút. Trình quản lý tác vụ Windows 7 không nhóm các quy trình theo cùng một cách, nó cũng không hiển thị các tên quy trình thông thường - nó chỉ hiển thị tất cả các phiên bản của Svchost.exe. Bạn phải khám phá một chút để xác định các dịch vụ liên quan đến bất kỳ trường hợp cụ thể nào của Sv svostost.exe.
Trên tab Quy trình xử lý của Wikipedia trong Trình quản lý tác vụ trong Windows 7, nhấp chuột phải vào một quy trình Svchost.exe trực tiếp cụ thể, sau đó chọn tùy chọn Chuyển đến dịch vụ.
Điều này sẽ đưa bạn đến tab Dịch vụ của Wap, nơi các dịch vụ đang chạy trong quy trình đó của Svchost.exe..
Sau đó, bạn có thể thấy tên đầy đủ của từng dịch vụ trong cột Mô tả trực tuyến, vì vậy bạn có thể chọn tắt dịch vụ nếu bạn không muốn nó chạy hoặc khắc phục lý do tại sao nó gây ra sự cố cho bạn.
Kiểm tra các dịch vụ liên quan bằng Process Explorer
Microsoft cũng cung cấp một công cụ tiên tiến tuyệt vời để làm việc với các quy trình như là một phần của dòng Sysiternals. Chỉ cần tải xuống Process Explorer và chạy nó - đó là một ứng dụng di động, vì vậy không cần phải cài đặt nó. Process Explorer cung cấp tất cả các loại tính năng nâng cao - và chúng tôi khuyên bạn nên đọc hướng dẫn của mình để hiểu về Process Explorer để tìm hiểu thêm.
Tuy nhiên, với mục đích của chúng tôi ở đây, các nhóm Process Explorer liên quan đến các dịch vụ theo từng phiên bản của Sv svostost.exe. Họ được liệt kê theo tên tệp của họ, nhưng tên đầy đủ của họ cũng được hiển thị trong cột Mô tả của Cảnh. Bạn cũng có thể di con trỏ chuột lên bất kỳ quy trình Svchost.exe nào để xem một cửa sổ bật lên với tất cả các dịch vụ liên quan đến quy trình đó - ngay cả những quy trình hiện không chạy.
Quá trình này có thể là một virus?
Quá trình này là một thành phần chính thức của Windows. Mặc dù có khả năng virus đã thay thế Máy chủ dịch vụ thực sự bằng một chương trình thực thi của chính nó, nhưng điều đó rất khó xảy ra. Nếu bạn muốn chắc chắn, bạn có thể kiểm tra vị trí tệp bên dưới của quy trình. Trong Trình quản lý tác vụ, bấm chuột phải vào bất kỳ quy trình Máy chủ dịch vụ nào và chọn tùy chọn Vị trí mở tệp.
Nếu tệp được lưu trữ trong thư mục Windows \ System32 của bạn, thì bạn có thể khá chắc chắn rằng bạn không phải đối phó với vi-rút.
Điều đó nói rằng, nếu bạn vẫn muốn yên tâm hơn một chút, bạn luôn có thể quét vi-rút bằng trình quét vi-rút ưa thích của mình. Cẩn tắc vô ưu!