158660
Book
In basket
Kontekst centrum danych Sprzęt w centrach danych Oprogramowanie w centrum danych Latencja z długiego ogona rozkładu Model myślenia Szacowanie rzędu wielkości Dlaczego transakcje działają powoli? Pomiary procesorów Pomiar latencji instrukcji add Niepowodzenie z prostym, sekwencyjnym kodem Niepowodzenia z prostą pętlą, kosztami wykonywania pętli i kompilatorem optymalizującym Niepowodzenie z martwą zmienną . Lepsza pętla Zmienne zależne Faktyczna latencja wykonywania Pomiar czasu dostępu do pamięci Pamięć Struktura pamięci podręcznej Wyrównanie danych Struktura bufora TLB Pomiar wielkości wiersza pamięci podręcznej Problem: wstępne wczytywanie wiersza N + 1 Odczyt uzależniony od poprzedniej operacji Nielosowy dostęp do pamięci DRAM Pomiar łącznej wielkości każdego poziomu pamięci podręcznej Pomiar stopnia wielodrożności pamięci podręcznej na poszczególnych poziomach . Czas dostępu do bufora TLB Niepełne wykorzystanie pamięci podręcznej Interakcje procesora i pamięci Interakcje związane z pamięcią podręczną Dynamika prostego mnożenia macierzy Szacunki Inicjowanie, kontrola wyników i obserwacja Szybsze mnożenie macierzy metodą transpozycji Szybsze mnożenie macierzy z wykorzystaniem podbloków Obliczenia z uwzględnianiem pamięci podręcznej . Pomiar dysków twardych i nośników SSD Dyski twarde Nośniki SSD Dostęp do dysku w programie i buforowanie danych na dysku Odczyt danych z dysku Zapis danych na dysku Odczyt danych z nośnika SSD Zapis danych na nośniku SSD Pomiary dotyczące sieci Ethernet Koncentratory, przełączniki i routery Protokół TCP/IP . Pakiety Wywołania RPC Niezidentyfikowany czas Obserwowanie ruchu w sieci Definicja przykładowego komunikatu RPC Projekt rejestrowania zdarzeń Przykładowy system klient-serwer oparty na wywołaniach RPC Przykładowy program serwera Blokady wirujące Przykładowy program klienta Pomiar jednego przykładowego wywołania RPC między klientem a serwerem Przetwarzanie końcowe dzienników wywołań RPC Dyskowa baza danych i jej interakcje z siecią Wyrównywanie pomiarów czasu Blokady wirujące Baza danych na dysku Rejestrowanie informacji Wyjaśnienie zmienności latencji transakcji Rejestrowanie zdarzeń Narzędzia do obserwacji Podstawowe mechanizmy rejestrowania zdarzeń Rozbudowane rejestrowanie zdarzeń Znaczniki czasu Identyfikatory wywołań RPC Formaty plików dziennika Zarządzanie plikami dziennika Miary zagregowane Zdarzenia występujące jednostajnie i seryjnie Mierzone okresy Oś czasu Dalsze podsumowywanie osi czasu Skale czasowe dla histogramów Agregowanie pomiarów dotyczących zdarzeń Zmiany wzorców wartości w czasie Czas między aktualizacjami Panele kontrolne Przykładowa usługa Przykładowe panele kontrolne Główny panel kontrolny Panele kontrolne instancji Panele kontrolne serwerów Testy poprawności Rodzaje narzędzi do obserwacji Obserwowane dane Polecenie top . Pseudopliki /proc i /sys Polecenie time Polecenie perf Narzędzie oprofile, profiler procesora Narzędzie strace, wywołania systemowe Narzędzie ltrace, wywołania bibliotek języka C w procesorze Narzędzie ftrace, śledzenie funkcji jądra w procesorze Operacje malloc i free, narzędzie mtrace Śledzenie operacji dyskowych, narzędzie blktrace Śledzenie sieci, tcpdump i Wireshark Blokady sekcji krytycznych, narzędzie locktrace Oferowane obciążenie, wywołania wychodzące i latencja transakcji Ślady Przykład: jeden z pierwszych śladów licznika programu Przykład: liczba instrukcji i czas na funkcję Studium przypadku: ślady poszczególnych funkcji w serwisie Gmail Zasady projektowania narzędzi do obserwacji Jakie koszty są dopuszczalne? Konsekwencje projektowe Studium przypadku: kubełki w histogramie Projektowanie sposobu wyświetlania danych Narzędzie KUtrace Implementacja Patche i moduł jądra Program sterujący Przetwarzanie końcowe Uwagi na temat bezpieczeństwa KUtrace: patche jądra Linuksa Struktury danych bufora śladu Format surowych bloków śladu Rekordy śladu Rekordy z liczbą instrukcji na cykl (I/C) Znaczniki czasu . Numery zdarzeń Zagnieżdżone rekordy śladu Kod Śledzenie pakietów Patche dla procesorów x86-64 firm AMD i Intel . KUtrace: wczytywany moduł dla systemu Linux Struktury danych interfejsu jądra Wczytywanie i zwalnianie modułu Inicjowanie śledzenia i sterowanie nim Implementacja wywołań do generowania śladu . Insert1 InsertN Przełączanie się do nowego bloku . KUtrace: sterowanie w trybie użytkownika Sterowanie procesem śledzenia Samodzielny program kutrace_control Podstawowa biblioteka kutrace_lib . Interfejs do sterowania wczytywanym modułem . Przetwarzanie końcowe w narzędziu KUtrace Program rawtoevent Program eventtospan Program spantotrim Program spantospan Programy samptoname_k i samptoname_u Program makeself Format plików JSON w narzędziu KUtrace KUtrace: wyświetlanie dynamiki działania oprogramowania Obszar 1 — kontrolki Obszar 2 — oś y Obszar 3 — osie czasu Obszar 4 — legenda dotycząca liczby instrukcji na cykl Obszar 5 — oś x Obszar 6 — zapisywanie i wczytywanie Kontrolki pomocnicze Wykonywanie za dużej ilości kodu Powolne wykonywanie kodu Konkurujący program z operacjami zmiennoprzecinkowymi Konkurujący program korzystający z pamięci Oczekiwanie na procesor Oczekiwanie na pamięć Oczekiwanie na dysk Odczyt 40 MB Odczyt sekwencyjnych bloków po 4 KB Odczyt losowych bloków po 4 KB Zapis i synchronizacja 40 MB na nośniku SSD Odczyt 40 MB z nośnika SSD Dwa programy jednocześnie używające dwóch plików Oczekiwanie na sieć Oczekiwanie na blokady Proste zajmowanie blokady Nasycenie blokady Zawłaszczenie blokady Zagłodzenie w oczekiwaniu na blokadę Oczekiwanie na podstawie czasu Okresowe wykonywanie pracy Limity czasu Podział czasu Wewnętrzne opóźnienia w wykonywaniu Oczekiwanie na kolejki Rozkład żądań Struktura kolejki Operacje Dequeue Operacja Enqueue Klasa blokady wirującej Procedura odpowiedzialna za „pracę” Częstotliwość procesora Oczekiwanie na procesory — dziennik wywołań RPC Analiza oczekiwania na procesor za pomocą narzędzia KUtrace Błąd w klasie PlainSpinLock Poprawiona klasa PlainSpinLock zapewniająca obserwowalność Równoważenie obciążenia Zapewnianie obserwowalności długości kolejki Aktywne oczekiwanie na końcu Sprzęt z przykładowych serwerów Łącza serwerów Rekordy śladu Rekordy śladu o stałej długości . Rekordy o zmiennej długości Numery zdarzeń Zdarzenia wstawiane przez patche narzędzia KUtrace dla jądra Zdarzenia wstawiane przez kod trybu użytkownika Zdarzenia wstawiane przez kod przetwarzania końcowego
Sygnatura czytelni BWEAiI: XII J 120
Media files:
Availability:
Wypożyczalnia
There are copies available to loan: sygn. 153437 N (1 egz.)
Biblioteka WEAiI
Copies are only available in the library: sygn. 153438 N (1 egz.)
Notes:
Tytuł oryginału: Understanding software dynamics, 2022
General note
Na stronie 4. okładki także nazwa wydawcy oryginału: Pearson.
Bibliography, etc. note
Bibliografia, netografia na stronach 448-455.
Target audience note
Dla programistów i osób zaawansowanych w nauce programowania.
The item has been added to the basket. If you don't know what the basket is for, click here for details.
Do not show it again

Deklaracja dostępności