Statystyka przepustowości pamięci RAM systemu Linux dla danego PID

2

Jak dowiedzieć się, jak szybki jest określony proces uzyskujący dostęp do pamięci DRAM?

Istnieje wiele sposobów monitorowania zużycia procesora, wielkości pamięci itp., Ale czy istnieje narzędzie, którego mogę użyć do monitorowania przepustowości pamięci wykorzystywanej przez określony program? Nie, nie mam dostępu do kodu źródłowego programu, jest to binarny obiekt blob. I nie, nic nie idzie w przestrzeń wymiany.

Zasadniczo chcę profilować przepustowość pamięci RAM programu na wielu różnych architekturach sprzętowych. Zdaję sobie sprawę, że wszystkie mechanizmy buforowania mogą komplikować sytuację, ale po zapisaniu w pamięci podręcznej procesora (zarówno instrukcji, jak i danych) nie przeszkadza mi to. Chcę wiedzieć, jaka jest szybkość przesyłania danych między procesorem a pamięcią RAM używaną przez dany proces.

Będziemy wdzięczni za wszelkie sugestie, co może być dobrym sposobem na osiągnięcie tego celu! Dzięki!

użytkownik2539817
źródło

Odpowiedzi:

0

Perf narzędzie przychodzi do głowy - Spróbuj perf mem record <command>następuje perf mem report.

grawitacja
źródło
Opcja mem istnieje tylko w funkcji testu porównawczego, tzn. „# Perf bench mem” porównuje wydajność systemu, a nie profil aplikacji. Najbliższe, do którego przyszedłem, to: # perf stat -p PID -a -e HW_COUNTERS Liczniki sprzętowe, takie jak brak pamięci podręcznej, brak obciążenia LLC, brak pamięci LLC, brak pobierania LLC itp. ale dalekie od ostatecznej statystyki.
user2539817,
@ user2539817: Być może masz starszą wersję? perf memz pewnością istnieje w perf 3.17.0 ...
grawity
Ich dokumentacja jest co najmniej szkicowa, ale i tak utknąłem z wersją 2.6.32-431.29.2.el6.x86_64.debug.
user2539817,