В настоящее время я использую https://github.com/siebenmann/cks-dtrace/blob/master/nfs3-mon.d для определения наиболее активных наборов данных на нашем сервере NFS (Solaris 10)
К сожалению, мне нужно копнуть глубже, и Я хотел бы иметь возможность отслеживать наиболее часто используемые файлы. Есть ли способ составить список самых популярных X-файлов для различных операций?
Я не гуру dtrace и не смог найти ответ за несколько часов ..
ഒറാക്കിൾ വെബ്സൈറ്റിൽ എൻഎഫ്എസ് ഡിട്രേസ് ദാതാവിനുള്ള ഡോക്സ് വളരെ മികച്ചതാണ്. നിങ്ങൾക്ക് പ്രത്യേകിച്ചും ഉപയോഗപ്രദമെന്ന് തോന്നുന്ന സ്ക്രിപ്റ്റുകൾ nfsv3fileio.d
അല്ലെങ്കിൽ (നിങ്ങൾക്ക് ധാരാളം പോസ്റ്റ്-പ്രോസസ് ചെയ്യേണ്ട കൂടുതൽ ഡാറ്റ ലഭിക്കാൻ) nfsv3rwsnoop.d
.
"ഏറ്റവും കൂടുതൽ വായന / റൈറ്റുകൾ" എന്നപോലെ "ഏറ്റവും കൂടുതൽ ഉപയോഗിച്ചു" എന്നാണ് നിങ്ങൾ ഉദ്ദേശിക്കുന്നതെന്ന് കരുതുക, കൂടാതെ അവ അല്ലെങ്കിൽ അവ ചെയ്യുന്നവർ തമ്മിലുള്ള അനുപാതത്തെക്കുറിച്ച് നിങ്ങൾക്ക് താൽപ്പര്യമില്ല, ഫയൽനാമങ്ങളും ഐഒയും അച്ചടിക്കുന്നതിനുള്ള ഒരു ലളിതമായ സ്ക്രിപ്റ്റ് അവയിൽ ഓരോന്നിന്റെയും എണ്ണം ഇതാണ്:
nfsv3:::op-read-start, nfsv3:::op-write-start {
@[args[1]->noi_curpath] = count();
}
tick-10sec {
printa(@);
trunc(@);
}
(എൻഎഫ്എസ് ഷെയറുകളൊന്നും സജ്ജമാക്കിയിട്ടില്ലാത്തതിനാൽ ഞാൻ ഇത് പ്രവർത്തിപ്പിച്ചില്ല, പക്ഷേ ഇത് പ്രവർത്തിക്കുമെന്ന് ഞാൻ കരുതുന്നു.) ഇത് എന്താണ് ചെയ്യുന്നതെന്ന് ചുരുക്കത്തിൽ:
nfsv3 ::: ഒരു എൻഎഫ്എസ്വി 3 പങ്കിടലിൽ ഒരു വായന അല്ലെങ്കിൽ എഴുത്ത് ആരംഭിക്കുമ്പോൾ ആരംഭിക്കുന്ന സംഭവങ്ങളാണ് op- {read | write} -start
. അവയിലൊന്ന് സംഭവിക്കുമ്പോഴെല്ലാം, ഇവന്റിന് ഒരു ആർഗ്യുമെന്റ് ലഭിക്കുന്നു ആർഗുകൾ [1]
, അതിൽ വേരിയബിൾ noi_curpath
അടങ്ങിയിരിക്കുന്നു, അത് ഫയലിന്റെ പാത നൽകുന്നു (ലഭ്യമാണെങ്കിൽ; ഇടയ്ക്കിടെ ഇത് കാഷെ ചെയ്യാത്തതിനാൽ നിങ്ങൾക്ക് ലഭിക്കും ഒന്നുമില്ല). ഞങ്ങൾ അത് ഒരു കീയായി ഉപയോഗിക്കുന്നു, എണ്ണം ()
തവണ ഇത് ഉപയോഗിക്കുന്നു (മറഞ്ഞിരിക്കുന്ന) എന്ന മാപ്പിലെ മൂല്യം ഓരോ 10 സെക്കൻഡിലും ട്രിഗർ ചെയ്യുന്ന ഒരു ഇവന്റാണ്, സ്ക്രിപ്റ്റ് ആരംഭിച്ച് 10 സെക്കൻഡ് ആരംഭിക്കുന്നു. ഇത് ആദ്യം പ്രിന്റ ()
ഉപയോഗിച്ച് മാപ്പ് പ്രിന്റുചെയ്യുന്നു, തുടർന്ന് ട്രങ്ക് ()
ഉപയോഗിച്ച് മൂല്യങ്ങൾ മായ്ക്കുന്നു, അതിനാൽ അടുത്ത 10 സെക്കൻഡ് വിൻഡോയ്ക്കായി ഞങ്ങൾക്ക് പുതിയ ഡാറ്റ ലഭിക്കും.