Thay đổi đăng ký DisablePagingExceed có ảnh hưởng thực tế không?


9

Trên một số máy trong quá khứ, trên các phiên bản Windows khác nhau (2000, XP và không có Vista), tôi đã kích hoạt DisablePagingExceed để thử và cải thiện hiệu suất. Trong từng trường hợp, và tôi đã có rất nhiều bộ nhớ và đặc biệt là trong trường hợp hiện tại. Tuy nhiên, sau khi kích hoạt tinh chỉnh registry này và khởi động lại, tôi đã kiểm tra trình quản lý tác vụ sau một thời gian và tôi vẫn hiển thị một khối lớn nhân được phân trang vào đĩa, mặc dù tôi có 2GB bộ nhớ vật lý.

Có ai đã từng sử dụng tinh chỉnh này thành công? Không bao giờ? Có thể tôi đang xem chỉ báo sai khi tôi kiểm tra trình quản lý tác vụ (tab Hiệu suất -> phần "Bộ nhớ hạt nhân"), nhưng tôi muốn ngăn Windows phân trang mọi thứ có thể vào đĩa, đặc biệt là xem xét dung lượng bộ nhớ được cung cấp trong máy tính để bàn những ngày này. Có vẻ như tùy chọn "Không trang vào đĩa trừ khi có áp lực bộ nhớ cực lớn" phải tồn tại - có phải không?

Câu trả lời:


13

Có một lượng lớn sự nhầm lẫn trên internet liên quan đến chức năng này. Cài đặt chỉ ảnh hưởng đến một phần của kernel được gọi là bộ điều hành, và sau đó chỉ đến các phần có thể phân trang. Có những phần khác của kernel hoàn toàn không bị ảnh hưởng bởi cài đặt này.

Phân trang hạt nhân hoạt động tương tự như bất kỳ phân trang khác. Mã và dữ liệu thường xuyên được truy cập sẽ được giữ trong RAM trong khi phần còn lại sẽ vẫn còn trên đĩa - nơi nó thuộc về. Hệ thống sẽ không loại bỏ bất kỳ phần nào của kernel khỏi RAM trừ khi nó tìm thấy cách sử dụng tốt hơn cho nó. Microsoft đã dành một lượng lớn nghiên cứu và thử nghiệm cho các hệ thống phân trang.

Trong ngữ cảnh của kernel "Nonpaged" có nghĩa là mã và dữ liệu không bao giờ có thể được phân trang trong bất kỳ trường hợp nào. "Paged" có nghĩa là mã và dữ liệu CÓ THỂ được phân trang nếu cần thiết. Bao nhiêu thực sự IS phân trang là không thể nói từ Trình quản lý tác vụ. Một phần của mã được phân trang không bao giờ được đọc từ đĩa ở vị trí đầu tiên vì nó chưa cần thiết. Không phải tất cả các kernel thường xuyên được truy cập. Bạn không nên mong đợi các số Paged và Nonpaged sẽ bị ảnh hưởng bởi cài đặt được đề cập.

Lưu ý: Khi mã được phân trang ra, nó thường không được sao chép vào tệp trang. Điều này là không cần thiết vì đơn giản là nó có thể được tải lại từ các tập tin gốc. Điều này áp dụng cho hầu hết các mã, không chỉ kerenl.

Với dung lượng RAM hợp lý, thiết lập sẽ không làm gì cả. Nó chỉ đơn giản là ngăn hệ thống phân trang dữ liệu mà dù sao nó cũng không muốn thoát ra.


4

Tôi không chắc liệu bạn có nhận ra điều này không, nhưng lỗi trang là cơ chế mà Windows sử dụng để tải mã thực thi. Vì vậy, ví dụ, một DLL được ánh xạ vào bộ nhớ ảo và sau đó các lỗi trang được sử dụng để thực hiện tải thực tế từ đĩa theo yêu cầu. Các pagefile không liên quan đến điều này.

Vì vậy, rất nhiều thứ bạn nghĩ là 'phân trang vào đĩa' có thể là thứ nằm trên đĩa ngay từ đầu.


Tôi đã không nhận ra điều đó, và nó có ý nghĩa, mặc dù tôi không nghĩ nó trả lời câu hỏi của tôi. Nếu tôi vô hiệu hóa phân trang của kernel windows, tại sao trình quản lý tác vụ của tôi tiếp tục nói với tôi rằng 75% trong số đó được phân trang (tổng số kernel 400 MB với phân trang 275MB)? Điều này cũng không giải quyết được câu hỏi của tôi về lý do tại sao Windows dường như trang quá nhiều khi vẫn còn nhiều GB RAM miễn phí.
SqlRyan

1
Bạn đang đọc 'paged' là 'bộ nhớ có thể ghi được đã được phân trang', trong khi trong bối cảnh của bộ nhớ kernel, 'paged' có nghĩa là 'có thể được phân trang' và 'không được phân trang' có nghĩa là 'sẽ không bao giờ được phân trang -ngoài'. Điều thứ hai rất quan trọng đối với lập trình KM khi bạn cần bộ nhớ trong trường hợp hệ thống phân trang không thể hoạt động (ví dụ trình xử lý ngắt).
Will Dean

Trong ngữ cảnh các thuật ngữ bạn đang sử dụng (Tôi không phải là nhà phát triển kernel, vì vậy tôi không biết gì hơn), tôi hy vọng thay đổi sổ đăng ký này sẽ đánh dấu toàn bộ kernel là "không phân trang" (nghĩa là "sẽ không bao giờ được phân trang "), và đó không phải là những gì nó làm. Tôi chỉ muốn xem liệu những người khác có cùng kỳ vọng với tôi không, hoặc nếu tôi diễn giải sai những gì thay đổi này phải làm.
SqlRyan

3

Chỉ cần thêm một lần sử dụng cài đặt này: nó cần thiết bằng cách xperfđi bộ ngăn xếp.

http://bloss.msdn.com/b/pigscanfly/archive/2009/08/06/stack-walking-in-xperf.aspx

Vô hiệu hóa Paging Executive

Để theo dõi hoạt động trên Windows 64 bit, bạn cần đặt khóa đăng ký DisablePagingExceed. Điều này nói với hệ điều hành không để trình điều khiển chế độ nhân trang và mã hệ thống vào đĩa, đây là điều kiện tiên quyết để nhận ngăn xếp cuộc gọi 64 bit bằng xperf, bởi vì việc đi bộ ngăn xếp 64 bit phụ thuộc vào siêu dữ liệu trong hình ảnh thực thi và trong một số trường hợp mã đi bộ ngăn xếp xperf không được phép chạm vào các trang được phân trang.

Một phần thông tin bổ sung về các thiết lập. Báo giá này có thể được tìm thấy qua internet, tôi không biết nguồn chính của nó.

DisablePagingExceed chỉ áp dụng cho ntoskrnl.exe. Nó không áp dụng cho win32k.sys (lớn hơn nhiều so với ntoskrnl.exe!), Các phần có thể phân trang của các trình điều khiển khác, nhóm phân trang và tất nhiên là bộ đệm hệ thống tệp. Tất cả đều sống trong không gian địa chỉ kernel và được phân trang vào đĩa. Trên các hệ thống bộ nhớ thấp, điều này có thể buộc mã ứng dụng được phân trang không cần thiết và giảm hiệu suất. Nếu bạn có quá nhiều RAM cho khối lượng công việc của mình, vâng, điều này sẽ không gây hại, nhưng một lần nữa, nếu bạn có quá nhiều RAM cho khối lượng công việc của mình, dù sao thì hệ thống sẽ không phân trang nhiều thứ đó. Cài đặt này hữu ích khi gỡ lỗi trình điều khiển và thường được khuyến nghị chỉ sử dụng trên các máy chủ chạy bộ ứng dụng nổi tiếng hạn chế

Vì vậy, người ta có thể kết luận rằng bên cạnh xperflợi ích của nó là tối nghĩa: Về cơ bản, nó hạn chế một số thứ "gần như ngẫu nhiên" khỏi phân trang và suy nghĩ xa hơn - do đó gây ra một thứ khác được phân trang thường xuyên hơn.


2

Tinh chỉnh DisablePagingExceed không dừng phân trang, mục đích của nó là ngăn "Điều hành" (tức là chính Hạt nhân) được phân trang và do đó làm chậm toàn bộ hệ thống, không chỉ các ứng dụng phân trang riêng lẻ.

Bạn có thể thử và vô hiệu hóa phân trang hoàn toàn bằng cách xóa tất cả các tệp trang trong Thuộc tính hệ thống (hoặc trong HKLM \ HỆ THỐNG \ CurrentControlSet \ Control \ Trình quản lý phiên \ Quản lý bộ nhớ \ PagingFiles). Điều này hoạt động tốt với tôi, nhưng mọi thứ trở nên khá khó chịu khi bạn hết bộ nhớ vật lý và bạn phải có một tệp trang để gỡ lỗi lỗi STOP.


Tôi đã chạy không có pagefile trong vài ngày và nó hoạt động khá tốt, Windows 7 thực sự cung cấp các đề xuất về các ứng dụng đói bộ nhớ để tiêu diệt khi nó bắt đầu sắp hết.
Froosh

1

Các thành phần cấp hệ thống, chẳng hạn như kernel, bộ điều hành và trình điều khiển thiết bị, có thể phân bổ bộ nhớ từ hai nhóm. Đây là nhóm phân trang, có thể được phân trang theo quyết định của người quản lý bộ nhớ và nhóm không phân trang phải luôn ở trong RAM mọi lúc. Nhà phát triển quyết định theo nhu cầu của mình, nhóm nào sẽ được sử dụng. Chúng tôi khuyên bạn nên sử dụng nhóm phân trang bất cứ khi nào có thể vì điều này cho phép trình quản lý bộ nhớ hệ thống linh hoạt tối đa. Cả hai nhóm có kích thước hạn chế và trong các hệ thống 32 bit, đặc biệt các giới hạn này có thể gây ra vấn đề. Các hồ bơi phân trang là lớn hơn đáng kể. Nếu nhóm không phân trang được sử dụng quá mức, giới hạn kích thước có thể đạt được và điều này sẽ gây ra một số vấn đề nghiêm trọng về hệ thống.

Các mục được gắn nhãn trong Trình quản lý tác vụ là bộ nhớ kernel "Paged" và "Non paged" đang hiển thị phân bổ của các nhóm này. Nó hoàn toàn không có gì để làm với trạng thái động của bao nhiêu bộ nhớ thực sự được phân trang. Mục đăng ký "DisablePagingExceutive" ảnh hưởng đến trạng thái phân trang động của một phần của nhóm phân trang để các hiệu ứng của nó sẽ không bao giờ được hiển thị bằng cách hỏi Manager.


1

Nếu bạn thực hiện thay đổi cài đặt hệ thống, bạn cần hiểu thông tin này hoặc tương đương với thông tin đó để biết loại kết quả nào thay đổi đối với cài đặt hệ thống, trong đó kết quả có thể dương, trung tính hoặc tiêu cực đối với hiệu suất hệ thống.

Những gì bạn có thể làm là mở "Resource Monitor" trong Windows. Chuyển đến công cụ tìm kiếm và tìm kiếm 'Resource Monitor'. Hoặc mở công cụ lệnh chạy (tôi sẽ cho rằng bất kỳ ai đang đọc điều này đều biết cách làm điều đó) và nhập 'resmon'.

Sử dụng công cụ này để giám sát tất cả các loại hoạt động của hệ thống, chẳng hạn như hoạt động của CPU, Hoạt động bộ nhớ và Hoạt động của đĩa cứng. Nếu bạn chưa quen với thông tin 'Trình giám sát tài nguyên' thì hãy nghiên cứu một chút vì bạn sẽ cần phải làm quen với nó để chạy các bài kiểm tra giúp bạn đo lường loại kết quả mà thay đổi đối với cài đặt hệ thống.

Ý tưởng cơ bản là bạn chạy 'Giám sát tài nguyên' khi hệ thống máy tính của bạn chạy một số tác vụ nhất định để đo lường kết quả liên quan đến hiệu suất mà thay đổi đối với cài đặt hệ thống. Chạy các tác vụ sử dụng tài nguyên hệ thống mà bạn đang cố kiểm tra hiệu năng. Ví dụ: có các tác vụ có thể kiểm tra bộ xử lý, bộ nhớ RAM, đĩa cứng, bộ xử lý đồ họa hoặc thiết bị mạng. Sử dụng google để tìm hiểu cách kiểm tra hiệu suất của (các) tài nguyên máy tính mà bạn muốn kiểm tra.

Ví dụ: nếu bạn thực hiện thay đổi cài đặt hệ thống, 'Vô hiệu hóa Paging Executive', bạn có thể chạy thử nghiệm trên tài nguyên máy tính và sử dụng 'Trình giám sát tài nguyên' để đo lường loại thay đổi nào tạo ra (nếu có thay đổi nào).

Sau đó thực hiện so sánh giữa dữ liệu và xem liệu có sự khác biệt đáng kể nào giữa cài đặt hệ thống cũ và cài đặt hệ thống mới mà bạn đã thay đổi.

Bạn có thể không phải lúc nào cũng cần sử dụng 'Resource Monitor' vì một số phương pháp kiểm tra hiệu năng tài nguyên hệ thống đi kèm với phần mềm giám sát và đo lường cho bạn.

Vấn đề là bạn muốn làm theo một phương pháp có hệ thống để xem liệu một thay đổi có làm gì đối với hiệu suất của hệ thống của bạn so với các tác vụ bạn yêu cầu máy tính thực hiện hay không.

Thay đổi một cài đặt. Kiểm tra nó để thay đổi hiệu suất. Xác định kết quả xét nghiệm. Dựa trên kết quả, quyết định xem bạn sẽ thay đổi cài đặt trở lại như cũ hay thành một thứ khác hoặc để nó ở vị trí cũ. 1) Thiết lập 2) Kiểm tra 3) Kết quả 4) Quyết định.

Bạn có thể sử dụng phương pháp khấu trừ logic này cho tất cả các loại điều chỉnh cài đặt hệ thống, bao gồm 'Vô hiệu hóa Paging Executive'.

Hạnh phúc tinh chỉnh.


1

Có rất nhiều! Thông tin rất tốt về bài viết này tôi đã rất ấn tượng. Tôi đã nhận thấy DisablePagingExceed với giá trị một được thực hiện tốt nhất tại trang web đầu tiên của máy tính để bàn sau khi cài đặt sạch mọi phiên bản windows từ xp đến windows 10, 32 bit đến 64 bit (miễn là có đủ ram trên bo mạch chủ của bạn) nhưng sau khi giá trị 1 được áp dụng cho DisablePagingExceed, giá trị tương tự cũng phải được tạo cho LargeSystemCache.

Cũng như đã đề cập ở trên, các tinh chỉnh này thường được thực hiện trong các máy chủ windows nhưng cũng tiện dụng khi gỡ lỗi.

Những sửa đổi này được sử dụng có nguy cơ của riêng bạn, vì vậy hãy xem xét những gì mọi người đã đề cập ở trên cũng không ảnh hưởng đến google từng khóa được đề cập là DisablePagingExceed và 1 tôi không nhớ đã thấy ... LargeSystemCache.

Hãy chắc chắn rằng bạn có đủ ram. Không đủ ram gây ra sự cố trên hệ thống của bạn mà bạn không muốn xử lý và có thể sẽ gây ra màn hình xanh (bsod) trên hệ thống của bạn.

4gb ram sẽ là mức tối thiểu mà tôi sẽ áp dụng các tinh chỉnh này ở trên và đó là nếu bạn không sử dụng các ứng dụng mạnh sử dụng nhiều ram hoặc nếu bạn chơi bất kỳ trò chơi nào, nếu bạn làm thì tốt nhất là để chúng ở một mình.

(XP: tối thiểu 256 mb ram)

Trước khi bạn làm bất cứ điều gì trong sổ đăng ký, bạn nên nâng cấp sổ đăng ký lên thiết bị lưu trữ thay vì ổ cứng Hệ điều hành hoặc bộ lưu trữ riêng biệt của BẤT K kind loại nào để bạn có thể khôi phục sổ đăng ký nếu cần.

Thông tin ở trên tôi thực sự vượt qua chữ T và chấm vào chữ i.

                    Make sure to backup your system.
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.