Wydajne Systemy Komputerowe. Przewodnik Dla Administratorów
Total Page:16
File Type:pdf, Size:1020Kb
Tytuł oryginału: Systems Performance: Enterprise and the Cloud Tłumaczenie: Robert Górczyński ISBN: 978-83-246-9157-9 Authorized translation from the English language edition, entitled: SYSTEMS PERFORMANCE: ENTERPRISE AND THE CLOUD; ISBN 0133390098; by Brendan Gregg; published by Pearson Education, Inc; publishing as Prentice Hall. Copyright © 2014 Pearson Education, Inc. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc. Polish language edition published by HELION S.A., Copyright © 2014. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie bierze jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Wydawnictwo HELION nie ponosi również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Wydawnictwo HELION ul. Kościuszki 1c, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: [email protected] WWW: http://helion.pl (księgarnia internetowa, katalog książek) Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/wysyko Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Printed in Poland. • Kup książkę • Księgarnia internetowa • Poleć książkę • Lubię to! » Nasza społeczność • Oceń książkę Spis treści Wstęp 19 Podziękowania 27 O autorze 31 Rozdział 1. Wprowadzenie 33 1.1. Wydajnoħè systemów 33 1.2. Role 34 1.3. Dziađania 35 1.4. Perspektywy 36 1.5. Zapewnienie wydajnoħci to wyzwanie 37 1.5.1. Wydajnoħè jest subiektywna 37 1.5.2. Systemy sæ skomplikowane 37 1.5.3. Moľe istnieè wiele problemów zwiæzanych z wydajnoħciæ 38 1.6. Opóļnienie 39 1.7. Monitorowanie dynamiczne 40 1.8. Przetwarzanie w chmurze 41 1.9. Studium przypadku 42 1.9.1. Wolno dziađajæce dyski 42 1.9.2. Zmiana oprogramowania 44 1.9.3. Co dalej? 46 3 Kup książkę Poleć książkę 4 Spis treści Rozdział 2. Metodologia 47 2.1. Terminologia 48 2.2. Modele 49 2.2.1. Wydajnoħè systemu podczas testu 49 2.2.2. Systemy kolejkowe 50 2.3. Koncepcje 50 2.3.1. Opóļnienie 50 2.3.2. Skala czasu 52 2.3.3. Kompromisy 52 2.3.4. Dostrajanie wydajnoħci 54 2.3.5. Poziomy trafnoħci 55 2.3.6. Rekomendacje w danym momencie 56 2.3.7. Obciæľenie kontra architektura 56 2.3.8. Skalowalnoħè 57 2.3.9. Znane niewiadome 59 2.3.10. Metryki 59 2.3.11. Poziom wykorzystania 60 2.3.12. Nasycenie 62 2.3.13. Profilowanie 63 2.3.14. Buforowanie 63 2.4. Perspektywy 66 2.4.1. Analiza zasobów 66 2.4.2. Analiza obciæľenia 67 2.5. Metodologia 68 2.5.1. Jawna antymetoda 70 2.5.2. Antymetoda losowej zmiany 70 2.5.3. Antymetoda obwiniania kogoħ innego 71 2.5.4. Metoda przygotowanej ad hoc listy rzeczy do sprawdzenia 71 2.5.5. Opis problemu 72 2.5.6. Metoda naukowa 73 2.5.7. Cykl diagnostyczny 74 2.5.8. Metoda narzúdzi 75 2.5.9. Metoda USE 76 2.5.10. Charakterystyka obciæľenia 83 2.5.11. Analiza dræľæca 84 2.5.12. Analiza opóļnienia 85 2.5.13. Metoda R 87 2.5.14. Monitorowanie zdarzeē 87 2.5.15. Dane statystyczne búdæce punktem odniesienia 89 2.5.16. Statyczne dostosowanie wydajnoħci 89 2.5.17. Dostosowanie bufora 90 2.5.18. Mikrotesty wydajnoħci 91 2.6. Modelowanie 91 2.6.1. Biznes kontra chmura 92 2.6.2. Identyfikacja wizualna 92 Kup książkę Poleć książkę Spis treści 5 2.6.3. Prawo skalowalnoħci Amdahla 94 2.6.4. Prawo skalowalnoħci uniwersalnej 95 2.6.5. Teoria kolejek 96 2.7. Planowanie pojemnoħci 100 2.7.1. Ograniczenia zasobu 100 2.7.2. Analiza wspóđczynnika 102 2.7.3. Skalowanie rozwiæzaē 103 2.8. Statystyka 103 2.8.1. Ocena wydajnoħci 104 2.8.2. Wartoħè ħrednia 105 2.8.3. Odchylenie standardowe, percentyle i mediana 106 2.8.4. Wspóđczynnik zmiennoħci 107 2.8.5. Rozkđad wielomodalny 107 2.8.6. Elementy odstajæce 108 2.9. Monitorowanie 108 2.9.1. Wzorce na podstawie czasu 109 2.9.2. Produkty sđuľæce do monitorowania 110 2.9.3. Podsumowanie od chwili uruchomienia systemu 110 2.10. Wizualizacja 111 2.10.1. Wykres liniowy 111 2.10.2. Wykres punktowy 112 2.10.3. Mapy cieplne 113 2.10.4. Wykres warstwowy 114 2.10.5. Narzúdzia wizualizacji 115 2.11. çwiczenia 115 2.12. Odwođania 116 Rozdział 3. Systemy operacyjne 117 3.1. Terminologia 118 3.2. Ħrodowisko 119 3.2.1. Jædro 119 3.2.2. Stosy 122 3.2.3. Przerwania i wætki przerwaē 123 3.2.4. Poziom priorytetu przerwania 124 3.2.5. Procesy 125 3.2.6. Wywođania systemowe 127 3.2.7. Pamiúè wirtualna 129 3.2.8. Zarzædzanie pamiúciæ 130 3.2.9. Algorytm szeregowania 130 3.2.10. Systemy plików 132 3.2.11. Buforowanie 134 3.2.12. Sieci 134 3.2.13. Sterowniki urzædzeē 135 3.2.14. Wieloprocesorowoħè 136 Kup książkę Poleć książkę 6 Spis treści 3.2.15. Wywđaszczenie 136 3.2.16. Zarzædzanie zasobami 137 3.2.17. Monitorowanie 137 3.3. Jædra systemów 138 3.3.1. UNIX 139 3.3.2. Systemy Solaris 139 3.3.3. Systemy Linux 143 3.3.4. Róľnice 146 3.4. çwiczenia 147 3.5. Odwođania 147 Rozdział 4. Narzędzia monitorowania 149 4.1. Rodzaje narzúdzi 150 4.1.1. Liczniki 150 4.1.2. Monitorowanie 152 4.1.3. Profilowanie 153 4.1.4. Monitorowanie (sar) 154 4.2. Ļródđa danych statystycznych 155 4.2.1. Interfejs /proc 156 4.2.2. Interfejs /sys 161 4.2.3 Framework kstat 162 4.2.4. Zliczanie opóļnienia 165 4.2.5. Zliczanie mikrostanu 166 4.2.6. Inne narzúdzia monitorowania 166 4.3. DTrace 168 4.3.1. Monitorowanie statyczne i dynamiczne 170 4.3.2. Sondy 171 4.3.3. Dostawcy 172 4.3.4. Argumenty 172 4.3.5. Júzyk D 173 4.3.6. Wbudowane zmienne 173 4.3.7. Akcje 173 4.3.8. Typy zmiennych 173 4.3.9. Jednowierszowe wywođania DTrace 177 4.3.10. Skrypty 177 4.3.11. Obciæľenie 178 4.3.12. Dokumentacja i zasoby 179 4.4. SystemTap 180 4.4.1. Sondy 181 4.4.2. Zestawy tapset 181 4.4.3. Akcje i wbudowane zmienne 182 4.4.4. Przykđady 182 4.4.5. Obciæľenie 184 4.4.6. Dokumentacja i zasoby 185 Kup książkę Poleć książkę Spis treści 7 4.5. perf 185 4.6. Obserwowanie monitorowania 186 4.7. çwiczenia 187 4.8. Odwođania 187 Rozdział 5. Aplikacje 189 5.1. Podstawy dotyczæce aplikacji 190 5.1.1. Cele 191 5.1.2. Optymalizacja najczústszego sposobu uľycia aplikacji 192 5.1.3. Monitorowanie 193 5.1.4. Notacja „duľe O” 193 5.2. Techniki sprawdzania wydajnoħci aplikacji 194 5.2.1. Ustalenie wielkoħci operacji wejħcia-wyjħcia 194 5.2.2. Pamiúè podrúczna 195 5.2.3. Buforowanie 195 5.2.4. Technika odpytywania 196 5.2.5. Wspóđbieľnoħè i równolegđoħè 196 5.2.6. Nieblokujæce operacje wejħcia-wyjħcia 199 5.2.7. Powiæzanie z procesorem 200 5.3. Júzyki programowania 200 5.3.1. Júzyki kompilowane 201 5.3.2. Júzyki interpretowane 202 5.3.3. Maszyny wirtualne 203 5.3.4. Mechanizm usuwania nieuľytków 203 5.4. Metodologia i analiza 204 5.4.1. Analiza stanu wætku 205 5.4.2. Profilowanie procesora 208 5.4.3. Analiza wywođaē systemowych 210 5.4.4. Profilowanie operacji wejħcia-wyjħcia 218 5.4.5. Charakterystyka obciæľenia 219 5.4.6. Metoda USE 219 5.4.7. Analiza dræľæca 220 5.4.8. Analiza blokad 221 5.4.9. Statyczne dostosowanie wydajnoħci 223 5.5. çwiczenia 224 5.6. Odwođania 226 Rozdział 6. Procesory 227 6.1. Terminologia 228 6.2. Modele 229 6.2.1. Architektura procesora 229 6.2.2. Pamiúci podrúczne w procesorze 230 6.2.3. Kolejki dziađania w procesorze 230 Kup książkę Poleć książkę 8 Spis treści 6.3. Koncepcje 231 6.3.1. Czústotliwoħè taktowania zegara 231 6.3.2. Instrukcje 232 6.3.3. Potok instrukcji 232 6.3.4. Wielkoħè instrukcji 232 6.3.5. Wartoħci CPI, IPC 233 6.3.6. Poziom wykorzystania 233 6.3.7. Czasy uľytkownika i jædra 234 6.3.8. Poziom nasycenia 234 6.3.9. Wywđaszczenie 235 6.3.10. Odwrócenie priorytetów 235 6.3.11. Wieloprocesowoħè, wielowætkowoħè 236 6.3.12. Dđugoħè sđowa 237 6.3.13. Optymalizacja kodu wynikowego 238 6.4. Architektura 238 6.4.1. Sprzút 238 6.4.2. Oprogramowanie 246 6.5. Metodologia 253 6.5.1. Metoda narzúdzi 254 6.5.2. Metoda USE 255 6.5.3. Charakterystyka obciæľenia 256 6.5.4. Profilowanie 257 6.5.5. Analiza cykli 259 6.5.6. Monitorowanie wydajnoħci 260 6.5.7. Statyczne dostosowanie wydajnoħci 260 6.5.8. Dostrojenie priorytetu 261 6.5.9. Kontrola zasobów 262 6.5.10. Powiæzanie z procesorem 262 6.5.11. Mikrotesty wydajnoħci 262 6.5.12. Skalowanie 263 6.6. Analiza 264 6.6.1. uptime 265 6.6.2. vmstat 267 6.6.3.