Giảm sử dụng bộ nhớ Metafile tinh?


8

Máy tính làm việc của tôi (Windows 7 64-bit) dành nhiều thời gian để trao đổi bộ nhớ khi tôi chuyển đổi giữa các chương trình. Điều này làm tôi ngạc nhiên vì tôi có 4 GB RAM và các chương trình tôi sử dụng không đặc biệt ngốn RAM (Outlook, Emacs, p4win, Firefox, các công cụ xây dựng khác nhau). Tôi đã tải xuống RAMMap và nó hiển thị trên một gigabyte bộ nhớ được sử dụng bởi "Metafile".

Từ blog Sysiternals :

Metafile là một phần của bộ đệm hệ thống và bao gồm siêu dữ liệu NTFS. Siêu dữ liệu NTFS bao gồm MFT cũng như các tệp siêu dữ liệu NTFS khác. ... Trong MFT, mỗi bản ghi thuộc tính tệp mất 1k và mỗi tệp có ít nhất một bản ghi thuộc tính. Thêm vào đó là các tệp siêu dữ liệu NTFS khác và bạn có thể thấy lý do tại sao danh mục Metafile có thể phát triển khá lớn trên các máy chủ có nhiều tệp.

Vì vậy, tôi hiểu dữ liệu "Metafile" là gì ... Tôi làm việc trên các bản dựng lớn bao gồm hàng trăm nghìn tệp (không có tệp nào lớn, nhưng chúng có dung lượng lên tới vài gigabyte). Câu hỏi của tôi là làm thế nào tôi có thể giảm dung lượng bộ nhớ được sử dụng bởi "Metafile"? Tôi không tích cực sử dụng tất cả các tệp đó cùng một lúc, vậy tại sao Windows cần giữ thông tin trong RAM? Khởi động lại máy của tôi mỗi khi tôi đồng bộ hóa bản dựng mới thực sự gây phiền nhiễu.


4
Các bản dựng là IO chuyên sâu, và do đó Windows đang giữ một bộ đệm hệ thống tệp lớn để cải thiện hiệu suất. Thật không may, các công cụ xây dựng cũng sử dụng rất nhiều bộ nhớ và thường là trong các gai lớn, điều này có thể gây ra sự thay đổi. Vì đây là cạnh tranh với bộ đệm hệ thống. Giải pháp tốt nhất có thể là thêm nhiều bộ nhớ hơn.
tgiphil

@tgiphil, Có thể hiểu rằng rất nhiều bộ nhớ được sử dụng khi kiểm tra hoặc thực hiện quá trình xây dựng. Tuy nhiên, nó vẫn đang được sử dụng và vẫn gây ra sự cố sau đó khi tôi chỉ làm việc trong một khu vực nhỏ. Thật không may, CNTT sẽ không cho tôi thêm bộ nhớ.
Jay Conrod

Tôi nghĩ Windows 7 đã tối ưu hóa hiệu suất của bạn với bộ nhớ đệm. Vì vậy, để tăng bộ nhớ khả dụng và để giảm trao đổi, hãy đóng mọi ứng dụng không cần thiết. Ví dụ, bạn có thể lấy lại một phần bộ nhớ tốt bằng cách đóng Outlook và Firefox. Nếu sử dụng Visual Studio và chỉ cần biên dịch, hãy thử xây dựng dòng lệnh thay thế. Tôi hi vọng cái này giúp được. BTW. Với bộ nhớ quá thấp (6Gb dưới 100 đô la), đây là một khoản đầu tư năng suất tuyệt vời.
tgiphil

Câu trả lời:


4

Tôi tin rằng bộ đệm hệ thống giải phóng bộ nhớ của nó khi được yêu cầu, nhưng sự cố có thể xảy ra. Dưới đây được liệt kê một số khả năng.

Hệ thống 64 bit của bạn phân bổ bộ nhớ video trong 4GB bộ nhớ đầu tiên. Vì vậy, nếu thẻ video của bạn có nhiều bộ nhớ, bộ nhớ đó sẽ bị mất, như được mô tả trong:
Bộ nhớ có thể sử dụng có thể ít hơn bộ nhớ đã cài đặt trên các máy tính chạy Windows 7

Bạn có thể kiểm tra mức sử dụng bộ nhớ trên máy tính bằng cách mở Trình quản lý thiết bị và trong menu Xem, chọn "Tài nguyên theo kết nối". Mở rộng nút Bộ nhớ và xem liệu bạn có thể tìm ra cái gì, nếu có gì, chiếm bộ nhớ không. Trong một số trường hợp, bộ nhớ có thể được tăng lên bằng cách vô hiệu hóa các thiết bị không sử dụng như firewire.

Bạn cũng có thể thử và làm ngược lại chính xác những gì được mô tả trong bài viết này:
Tăng Kích thước bộ nhớ cache của bộ nhớ tệp trong hệ thống Windows 7

Bạn cũng có thể thử Tắt Windows 7 SuperFetch .

Nếu không có gì giúp ích, bạn sẽ hữu ích khi đăng ảnh chụp màn hình của tab Trình quản lý tác vụ có tên Hiệu suất.


+1 là "Vô hiệu hóa Superfetch".

Không giảm điểm, nhưng Superfetch rất có thể làm tăng hiệu suất của anh ấy - không làm giảm nó - vì các thực thi xây dựng thường được thực thi thường xuyên và sẽ được hưởng lợi từ việc được lưu trữ. Đối với thẻ video ảnh hưởng đến bộ nhớ khả dụng, nó không áp dụng được trên Windows 7 64 bit chỉ với 4Gb. Thẻ video sẽ được ánh xạ trên 4Gb, trong trường hợp này.
tgiphil

@tgiphil: Từ bài viết được trích dẫn ở trên của Microsoft: "thẻ video có bộ nhớ trong 256 MB, bộ nhớ đó phải được ánh xạ trong 4 GB không gian địa chỉ đầu tiên".
harrymc

Tại tổ chức của tôi, chúng tôi cũng có hàng tấn tệp nhỏ và siêu tệp NTFS lớn trong RAM. Từ những gì tôi có thể nói, Windows không lưu trữ Metafile như mọi thứ khác và không bao giờ thực sự giải phóng nó khỏi RAM. Máy tính sẽ sử dụng tới 100% bộ nhớ và sau đó tất cả các ứng dụng của bạn bắt đầu gặp sự cố do thiếu bộ nhớ. Tất nhiên đây không phải là Windows 7, đó là Windows Server 2008 R2.
Phil

Ngoài ra, liên kết "Tăng bộ nhớ cache bộ nhớ hệ thống tập tin" khuyên những điều không thực sự hoạt động. Xem Tunehound.com/blog/?p=1164
Phil

0

Windows Server 2008 R2 gặp chính xác vấn đề "bộ đệm" siêu dữ liệu, đó là quá nhiều thông tin siêu dữ liệu được lưu trong bộ nhớ hoạt động, do đó các chức năng bộ đệm không có quyền cho phép bộ nhớ này được giải phóng khi có áp lực bộ nhớ.

Tôi đã viết một tập lệnh powershell trên trang serverfault.com Sử dụng RAM siêu dữ liệu Windows Server 2008 R2 để đặt bộ nhớ hoạt động siêu tệp tối đa thành một cái gì đó hợp lý. Phần còn lại được chuyển sang bộ nhớ dự phòng và các chức năng bộ đệm thông thường sau đó có thể ưu tiên mọi thứ một cách thích hợp. Cả Windows 7 x64 và Server 2008 R2 x64 đều có giới hạn bộ nhớ hoạt động tối đa mặc định cho dữ liệu siêu dữ liệu là 1TB. Có TB, không GB.

Công việc hiện chạy tập lệnh đó tại tất cả các trang web của chúng tôi trên các máy chủ của chúng tôi tổ chức sao lưu trang web, xử lý hàng triệu tệp trong chu kỳ sao lưu mỗi ngày. Các máy chủ sao lưu này cũng chạy một chương trình java nặng bộ nhớ (VMware vSphere), 2 máy chủ SQL và WSUS với máy chủ SQL của riêng nó. Với phần mềm sao lưu, trước tiên hãy đọc siêu dữ liệu (tên, kích thước, ngày sửa đổi, quyền, thuộc tính, v.v.) để xác định danh sách các tệp mà nó sẽ sao lưu trong đó vượt qua RẤT nhanh chóng lấp đầy bộ đệm siêu dữ liệu. Thậm chí làm tất cả những gì họ đi cùng độc đáo chỉ với 4GB RAM.

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.