Simptomai
Kyla taikomųjų programų ir tarnybų veikimo problemų įvairiose "Windows XP" versijose, "Windows Vista", "Windows Server 2003", "Windows Server 2008" ir "Windows Server 2008 R2". Be to, pastebite šiuos požymius:
-
Prieinama atmintis beveik išeikvota.
-
Sistemos failų talpykla naudoja didžiąją fizinę RAM atmintį.
-
Yra pastovus ir didelis talpyklos skaitymo užklausų kiekis standžiajame diske.
Priežastis
Atminties valdymas "Microsoft Windows" operacinėse sistemose naudoja pagal pareikalavimą pagrįstą algoritmą. Jei kuris nors procesas reikalauja ir naudoja daug atminties, veikia rinkinio dydis (fizinės RAM atminties puslapių skaičius). Jei šie prašymai yra nepertraukiami ir nepažymėtas, darbo rinkinys didės, kad būtų suvartojama visa fizinė RAM. Esant tokiai situacijai, darbo rinkiniai, skirti visiems kitiems procesams, yra numeruojami standžiajame diske. Taip sumažėja taikomųjų programų ir tarnybų našumas, nes atminties puslapiai yra nuolat įrašomi į standųjį diską ir perskaitomi iš standžiojo disko.
Ši problema taip pat taikoma sistemos failų talpyklos darbo rinkiniui. Jei yra pastovus ir didelis talpyklos skaitymo užklausų kiekis iš bet kokio proceso arba iš bet kurio tvarkyklės, sistemos failų talpyklos darbinio rinkinio dydis augs, kad atitiktų šį poreikį. Sistemos failų talpykla naudoja fizinę RAM. Todėl nepakanka fizinės RAM atminties kitiems procesams. "32" bitų "Microsoft Windows" operacinių sistemų versijose, ankstesnėse nei "Windows Vista", sistemos failų talpyklos darbo rinkiniai turi teorinį atminties limitą, mažesnį nei 1 gigabaitas (GB). Virtualiojo adresų ribos apribojimas neleidžia sistemos failų talpyklos darbo rinkiniams pašalinti fizinę RAM. "32" bitų "Windows Vista" versijų operacinėse sistemose branduolio ištekliai priskiriami dinamiškai. "System File Cache" darbinis rinkinys padidina "Kernel" režimo virtualiojo adresų intervalą kitų branduolio išteklių sąskaita. Šio atminties intervalo apribojimas yra mažesnis nei 2 GB. Jei kompiuteryje yra daugiau nei 2 GB fizinės RAM, talpyklos negalima išnaudoti visos fizinės RAM. Tačiau talpykla gali išnaudoti virtualiąją adresų sritį branduolyje. Tai gali sukelti kitų branduolio komponentų priskyrimo gedimus. "64" bitų "Windows" operacinių sistemų versijose virtualiojo adresų srities dydis paprastai yra didesnis už fizinę RAM. Esant tokiai situacijai, darbo rinkinys sistemos failų talpykloje gali padidėti, kad būtų suvartojama daugiausia fizinės RAM atminties.Sprendimas
Atminties valdymo algoritmai "Windows 7" ir "Windows Server" 2008 R2 operacinėse sistemose buvo atnaujinti, kad būtų išspręsta daugelis failų kaupimo problemų, kurios buvo rastos ankstesnėse "Windows" versijose. Yra tik tam tikros unikalios situacijos, kuriose turite įdiegti šią tarnybą kompiuteriuose, kuriuose veikia "Windows 7" arba "Windows Server" 2008 R2.
Kaip nustatyti, ar jūsų sistema yra paveikta
Norėdami nustatyti, ar jūsų sistemai veikia ši problema, įdiekite SysInternals RamMap įrankį. Įrankį galite įsigyti šioje "Windows SysInternals" svetainėje:
http://technet.Microsoft.com/en-us/SysInternals/ff700229 Paleidę įrankį pasirinkite parinktį naudoti skaičius . Bus rodomi keli stulpeliai, kuriuose rodomas esamas atminties naudojimo modelis. Spustelėkite aktyvų stulpelį, kurį norite rikiuoti pagal naudojamą baitų skaičių, ir užsirašykite aukščiausią panaudojimą tiesiogiai po bendrąja suma. Jei naudojamas didžiausias naudojimo skaičius yra "metafailas", o jei naudojama Didžioji atminties dalis, susidūrėte su sistemos failų talpyklos problema, aprašyta skyriuje "Požymiai". Galite tai patikrinti naudodami našumo monitorių, kad stebėtumėte Memory\System talpyklą, kurioje reziduoja baitų skaitiklis, ir pamatysite, kad talpykla pastoviai auga per tam tikrą laiką. 1 paveikslas. Pavyzdys "RamMap" išvestis, kurioje kompiuteris susiduria su problema. 2 paveikslas. Pavyzdys RamMap išvestis, kurioje kompiuteris nepatiria problemos. Jei Memory\System talpyklos rezidento baitų Skaitliukas našumo monitoriuje rodo didėjimo tendenciją per tam tikrą laiką, kompiuteris patiria problemą, kaip pavaizduota 3 paveiksle. 3 paveikslas. Našumo monitoriaus išvesties pavyzdys, kai kompiuteris patiria problemų per tam tikrą laiką.
Reikalavimai iš naujo
Jums nereikia iš naujo paleisti kompiuterio diegiant, šalinant arba naudojant šią tarnybą.
Jei skaitote šį straipsnį, nes dirbate su klientu, kuris mano, kad jis paveikė šią problemą, atlikite šiuos veiksmus, kad išspręstumėte problemą.
-
Patikrinkite, ar kliento "RamMap Output", "Perfmon" arba "Poolmon" duomenys patvirtina, kad sistemos failų talpykla sunaudoja didžiąją dalį fizinės RAM, kaip aprašyta anksčiau.
-
Norėdami įsigyti "Windows" dinaminio talpyklos paslaugą, atsisiųskite ją čia.
-
Kai kurie dinaminių talpyklos registro parametrai yra tokie:
Failų serveriai, galbūt norėsite išbandyti 1GB. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters] "MaxSystemCacheMBytes" = DWORD: 00000400 "MinSystemCacheMBytes" = DWORD: 00000064 "SampleIntervalSecs" = DWORD: 0000003c "Cacheupdatekuoldmbytes" = DWORD: 00000064 "Exchange 2007", galbūt norėsite išbandyti 500 MB: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters] "MaxSystemCacheMBytes" = DWORD: 000001F4 "MinSystemCacheMBytes" = DWORD: 00000064 "SampleIntervalSecs" = DWORD: 0000003c "Cacheupdatekuoldmbytes" = DWORD: 00000064 "SQL 2005" ir naujesnė versija, kai dirbate su SQL EE, naudoju 2GB: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters] "MaxSystemCacheMBytes" = DWORD: 000007D0 "MinSystemCacheMBytes" = DWORD: 00000064 "SampleIntervalSecs" = DWORD: 0000003c "Cacheupdatekuoldmbytes" = DWORD: 00000064
Daugiau informacijos
Norėdami išspręsti šią problemą, naudokite funkciją GetSystemFileCacheSize API ir SetSystemFileCacheSize API, kad nustatytumėte didžiausią arba mažiausią dydžio reikšmę sistemos failų talpyklos darbo rinkiniams. Šių funkcijų naudojimas yra vienintelis palaikomas būdas apriboti fizinės atminties suvartojimą sistemos failų talpykloje.
"Microsoft Windows Dynamic Cache" tarnyba yra pavyzdys tarnyba, kuri rodo vieną strategiją naudoti šias API, kad sumažintų šios problemos poveikį. "Microsoft Dynamic Cache" paslaugos diegimas ir naudojimas nesukelia "Microsoft Windows" palaikymo pašalinimo. Ši tarnyba ir jos šaltinio kodas pateikiami kaip pavyzdys, kaip naudoti "Microsoft" palaikomas API, siekiant sumažinti failų sistemos talpyklos augimą. Galite gauti paslaugą ir šaltinio kodą iš šios "Microsoft" žiniatinklio svetainės:Papildomi ištekliai
Skaitykite skyrius 9 (atminties valdymas) ir 10 (talpyklos tvarkytuvas) "Windows" Internals, 5 leidimas.Atminties valdymas (didelėms sistemos talpyklos problemoms) interneto dienoraščio skelbimasLėta didžiulė failų kopijavimo problemų interneto dienoraščio skelbimas"Windows" leidimų atminties limitai " 976618 " kyla efektyvumo problemų taikomosiose programose ir tarnybose, kai sistemos failų talpyklos sunaudoja didžiąją dalį fizinės RAM 918483 , kaip sumažinti buferio telkinio atminties, esančios "SQL Server" 895932 "64" bitų versijoje, skaičių Apsvarstykite prieš įgalindami sistemos talpyklos režimą "Windows XP" 232271 kaip optimizuoti "Windows NT Server" naudojant registro 837331 apie talpyklą Manager "Windows Server 2003" http://technet2.Microsoft.com/WindowsServer/EN/Library/EFA621BD-A031-4461-9E72-59197A7507B61033.mspxLargeSystemCache TechNet temarammap blog post
Statusą
"Microsoft" patvirtino, kad tai yra "Microsoft" produktų, išvardytų skyriuje "taikoma", problema.