Understanding web sockets from the ground upBoldare
Prezentacja z webinaru "Understanding WebSockets from the ground up" przeprowadzonej przez Józka Flakusa i Dawida Yerginyana.
Dowiedz się jak zbudować serwer WebSocketowy od zera - bez żadnej biblioteki pomocniczej, wykorzystując tylko i wyłącznie niskopoziomowe API oferowane przez platformę Node.js.
--
Join Boldare's newsletter to learn about a C-level point of view on user-centered design, software outsourcing services and the future of business.
Subscribe now --> https://go.boldare.com/newsletter-slideshare/
4Developers 2018: MySQL - Validate Your schema and change it smoothly (Piotr ...PROIDEA
Czy Twoja baza danych jest zaprojektowana optymalnie? Jak znaleźć tabele które wymagają optymalizacji? Czy da się z Twojej schemy wyciągnąc jeszcze więcej? Na prelekcji poruszę kwestię tego jak odszukiwać potencjalne problemy ze schematem bazy danych. Pokażę z jakich narzędzie mozna skorzystać i co one nam dają. Na koniec pokażę jak ALTERować duże tabele, jak odzyskiwać miejsce na dysku oraz omówie niebezpieczeństwa z tym związane.
Understanding web sockets from the ground upBoldare
Prezentacja z webinaru "Understanding WebSockets from the ground up" przeprowadzonej przez Józka Flakusa i Dawida Yerginyana.
Dowiedz się jak zbudować serwer WebSocketowy od zera - bez żadnej biblioteki pomocniczej, wykorzystując tylko i wyłącznie niskopoziomowe API oferowane przez platformę Node.js.
--
Join Boldare's newsletter to learn about a C-level point of view on user-centered design, software outsourcing services and the future of business.
Subscribe now --> https://go.boldare.com/newsletter-slideshare/
4Developers 2018: MySQL - Validate Your schema and change it smoothly (Piotr ...PROIDEA
Czy Twoja baza danych jest zaprojektowana optymalnie? Jak znaleźć tabele które wymagają optymalizacji? Czy da się z Twojej schemy wyciągnąc jeszcze więcej? Na prelekcji poruszę kwestię tego jak odszukiwać potencjalne problemy ze schematem bazy danych. Pokażę z jakich narzędzie mozna skorzystać i co one nam dają. Na koniec pokażę jak ALTERować duże tabele, jak odzyskiwać miejsce na dysku oraz omówie niebezpieczeństwa z tym związane.
PLNOG22: Tomasz Jarlaczyk & Tomasz Ludwiczak - DNSv6 i SSL - historie z życia...PROIDEA
Co by było gdyby serwery DNS były tylko w wersji IPv6… zupełnie przypadkiem przetestowaliśmy to dla serwisu allegro.pl. Opowiem jak to się objawiło, czy i na ile serwis był dostępny dla klientów oraz jakie wnioski wyciągnęliśmy z tej lekcji. W drugiej części opowiemy o zmianie z http://allegro.pl na https://allegro.pl widzianej z perspektywy admina. Dlaczego to nie było takie łatwe jakby się mogło wydawać. Dowiecie się o wyzwaniach które napotkaliśmy na drodze do pełnego szyfrowania i niekoniecznie technicznych kwestiach na które szyfrowanie miało ogromny wpływ. Dlaczego zmieniając coś w TLS musieliśmy wykonać setki telefonów… Przekażemy także kilka wskazówek jak mieć TLS na A+.
Przegląd najważniejszych założeń technologii ASP.NET MVC. Omówienie mechanizmów routingu, kontrolerów, widoków, bezpieczeństwa, walidacji danych, AJAX oraz rozszerzalności platformy. Prezentacja obejmuje fundamentalne założenia ASP.NET MVC 1, pozostające w większości nadal aktualne a także wybrane nowe mechanizmy ASP.NET MVC 2 i ASP.NET MVC 3.
PLNOG22 - Piotr Stolarek - Bezpieczeństwo użytkowania platform usługowych Tel...PROIDEA
Prelekcja poprzez szybkie nakreślenie architektury platformy Openshift omawia rozwiązania wykorzystane do zabezpieczenia aplikacji działających na kontenerach zarządzanych przez samą platformę. Podczas ich opisu szczególna uwaga zwracana jest na zagadnienia związane z ruchem sieciowym, które mogą mieć istotne znaczenie przy osadzaniu na niej aplikacji usługowych branży telekomunikacyjnej. 1. Wprowadzenie do architektury sieciowej platformy Openshift 2. Wyjaśnienie poprzez jakie mechanizmy architektura Openshift zapewnia bezpieczeństwo oraz integralność aplikacji na niej osadzonych a) separacja na poziomie sieciowym b) separacja na poziomie dostępu do zasobów systemowych oraz dyskowych 3. Sposoby kontroli oraz zabezpieczeń ruchu sieciowego pomiędzy aplikacjami osadzonymi na kontenerach (Istio/Service mesh)
Allegro Tech Talks Poznań #4: Jak przyspieszyć SOLRa w kilku prostych krokach. allegro.tech
40 milionów wyszukiwań dziennie, setki tysięcy uaktualizacji indeksu czyni z Allegro.pl drugą co do wielkości wyszukiwarkę w Polsce. Nie wszyscy wiedzą, że główną wyszukiwarkę ofertową w Allegro.pl napędza Apache SOLR. Opowiemy o naszych doświadczeniach z optymalizacją zapytań do SOLRa, o tym jak udało nam się znacznie zmniejszyć czasy odpowiedzi i zwiększyć stabilność działania naszego searcha. W czasie prezentacji poruszymy kwestie związane z tworzeniem schematu, wykorzystaniem odpowiednich typów danych, wykorzystania cachea, efektywnego filtrowania i innych optymalizacji, które udało nam się wdrożyć z sukcesem.
Wygłoszono w trakcie czwartej edycji Allegro Tech Talks w Poznaniu.
Adam Dudczak - Starszy programista w Grupie Allegro, pracuje z Javą i technologiami powiązanymi od 2004 roku. Na codzień pracuje nad wyszukiwarką allegro.pl. Jeden z liderów Poznań JUG (http://www.jug.poznan.pl) i współorganizator konferencji GeeCON (http://geecon.org).
Przemysław Szeremiota - Starszy programista w Grupie Allegro od 2008. Zaczynał pracę w zespole wydajności programując w C/C++, przeżył fascynację Javascriptem i zaznał Javy, obecnie doskonale czuje się pływając w mieszance Basha i JQ. W wolnych chwilach przetłumaczył ponad 70 książek technicznych.
This presentation is mainly about the system we've designed and developed for our internal purposes at work. Its name is: Data Center Physical Infrastructure Manager, DCPIM. This system is a mix of DMS (Document Management System), CMMS (Computerized Maintenance Management System), asset management, monitoring (via SNMP) and some basic DCIM (Data Center Infrastructure Management) features. It’s main purpose is to support our team in the daily tasks related to data center and physical infrastructure management, operations and maintenance. Currently, this system is in use not only by my team, in Poland, but also by our colleagues from the area of Baltic Countries (Lithuania, Latvia, Estonia).
Presented on DatacenterDynamics Converged Warsaw 2012:
http://www.datacenterdynamics.com/pl/conferences/2012/warsaw-2012
Presentation language: Polish
English title (translated): Data center ‘under control’: Data center infrastructure and physical infrastructure management, tools and processes facilitating the data center monitoring function
SQL Server 2008 Tips & tricks administracjiSQLExpert.pl
Sesja odbyła się 7 kwietnia 2009r na Wyższej Szkole Komunikacji i Zarządzania w Poznaniu z okazji IT Academic Day.
W ramach tej sesji przedstawiono różne nowości wersji SQL Server 2008 usprawniające pracę administratorom.
Między innymi mowa jest o Policy Based Management, Extended Events, SQL Audit czy też kompresji w SQL Server 2008.
Nowy software DBPLUS do monitoringu wydajności instancji PostgreSQL posiada taki sam interfejs użytkownika jak wersje dla baz danych Oracle i Microsoft SQL Server. Dzięki temu wdrożenie i konfiguracja oprogramowania może zostać wykonana samodzielnie przez administratorów zajmujących się wydajnością tych silników baz danych. Dokonując migracji bazy danych ze środowiska Oracle do PostgreSQL możliwe jest przeniesienie historii monitorowanej bazy danych wraz z historią.
Najważniejsze cechy: umożliwia sprawne lokalizowanie przyczyn problemów wydajnościowych w bazach danych; Minimalnie obciąża silnik bazy danych podczas zbierania parametrów jej pracy; System nie ma dostępu i nie analizuje danych biznesowych;Regularne aktualizacje i wsparcie producenta zapewniają wsparcie dla najnowszych wersji baz danych; Intuicyjny interface użytkownika i łatwość nawigacji również dla osób bez wiedzy technicznej.
PLNOG22: Tomasz Jarlaczyk & Tomasz Ludwiczak - DNSv6 i SSL - historie z życia...PROIDEA
Co by było gdyby serwery DNS były tylko w wersji IPv6… zupełnie przypadkiem przetestowaliśmy to dla serwisu allegro.pl. Opowiem jak to się objawiło, czy i na ile serwis był dostępny dla klientów oraz jakie wnioski wyciągnęliśmy z tej lekcji. W drugiej części opowiemy o zmianie z http://allegro.pl na https://allegro.pl widzianej z perspektywy admina. Dlaczego to nie było takie łatwe jakby się mogło wydawać. Dowiecie się o wyzwaniach które napotkaliśmy na drodze do pełnego szyfrowania i niekoniecznie technicznych kwestiach na które szyfrowanie miało ogromny wpływ. Dlaczego zmieniając coś w TLS musieliśmy wykonać setki telefonów… Przekażemy także kilka wskazówek jak mieć TLS na A+.
Przegląd najważniejszych założeń technologii ASP.NET MVC. Omówienie mechanizmów routingu, kontrolerów, widoków, bezpieczeństwa, walidacji danych, AJAX oraz rozszerzalności platformy. Prezentacja obejmuje fundamentalne założenia ASP.NET MVC 1, pozostające w większości nadal aktualne a także wybrane nowe mechanizmy ASP.NET MVC 2 i ASP.NET MVC 3.
PLNOG22 - Piotr Stolarek - Bezpieczeństwo użytkowania platform usługowych Tel...PROIDEA
Prelekcja poprzez szybkie nakreślenie architektury platformy Openshift omawia rozwiązania wykorzystane do zabezpieczenia aplikacji działających na kontenerach zarządzanych przez samą platformę. Podczas ich opisu szczególna uwaga zwracana jest na zagadnienia związane z ruchem sieciowym, które mogą mieć istotne znaczenie przy osadzaniu na niej aplikacji usługowych branży telekomunikacyjnej. 1. Wprowadzenie do architektury sieciowej platformy Openshift 2. Wyjaśnienie poprzez jakie mechanizmy architektura Openshift zapewnia bezpieczeństwo oraz integralność aplikacji na niej osadzonych a) separacja na poziomie sieciowym b) separacja na poziomie dostępu do zasobów systemowych oraz dyskowych 3. Sposoby kontroli oraz zabezpieczeń ruchu sieciowego pomiędzy aplikacjami osadzonymi na kontenerach (Istio/Service mesh)
Allegro Tech Talks Poznań #4: Jak przyspieszyć SOLRa w kilku prostych krokach. allegro.tech
40 milionów wyszukiwań dziennie, setki tysięcy uaktualizacji indeksu czyni z Allegro.pl drugą co do wielkości wyszukiwarkę w Polsce. Nie wszyscy wiedzą, że główną wyszukiwarkę ofertową w Allegro.pl napędza Apache SOLR. Opowiemy o naszych doświadczeniach z optymalizacją zapytań do SOLRa, o tym jak udało nam się znacznie zmniejszyć czasy odpowiedzi i zwiększyć stabilność działania naszego searcha. W czasie prezentacji poruszymy kwestie związane z tworzeniem schematu, wykorzystaniem odpowiednich typów danych, wykorzystania cachea, efektywnego filtrowania i innych optymalizacji, które udało nam się wdrożyć z sukcesem.
Wygłoszono w trakcie czwartej edycji Allegro Tech Talks w Poznaniu.
Adam Dudczak - Starszy programista w Grupie Allegro, pracuje z Javą i technologiami powiązanymi od 2004 roku. Na codzień pracuje nad wyszukiwarką allegro.pl. Jeden z liderów Poznań JUG (http://www.jug.poznan.pl) i współorganizator konferencji GeeCON (http://geecon.org).
Przemysław Szeremiota - Starszy programista w Grupie Allegro od 2008. Zaczynał pracę w zespole wydajności programując w C/C++, przeżył fascynację Javascriptem i zaznał Javy, obecnie doskonale czuje się pływając w mieszance Basha i JQ. W wolnych chwilach przetłumaczył ponad 70 książek technicznych.
This presentation is mainly about the system we've designed and developed for our internal purposes at work. Its name is: Data Center Physical Infrastructure Manager, DCPIM. This system is a mix of DMS (Document Management System), CMMS (Computerized Maintenance Management System), asset management, monitoring (via SNMP) and some basic DCIM (Data Center Infrastructure Management) features. It’s main purpose is to support our team in the daily tasks related to data center and physical infrastructure management, operations and maintenance. Currently, this system is in use not only by my team, in Poland, but also by our colleagues from the area of Baltic Countries (Lithuania, Latvia, Estonia).
Presented on DatacenterDynamics Converged Warsaw 2012:
http://www.datacenterdynamics.com/pl/conferences/2012/warsaw-2012
Presentation language: Polish
English title (translated): Data center ‘under control’: Data center infrastructure and physical infrastructure management, tools and processes facilitating the data center monitoring function
SQL Server 2008 Tips & tricks administracjiSQLExpert.pl
Sesja odbyła się 7 kwietnia 2009r na Wyższej Szkole Komunikacji i Zarządzania w Poznaniu z okazji IT Academic Day.
W ramach tej sesji przedstawiono różne nowości wersji SQL Server 2008 usprawniające pracę administratorom.
Między innymi mowa jest o Policy Based Management, Extended Events, SQL Audit czy też kompresji w SQL Server 2008.
Nowy software DBPLUS do monitoringu wydajności instancji PostgreSQL posiada taki sam interfejs użytkownika jak wersje dla baz danych Oracle i Microsoft SQL Server. Dzięki temu wdrożenie i konfiguracja oprogramowania może zostać wykonana samodzielnie przez administratorów zajmujących się wydajnością tych silników baz danych. Dokonując migracji bazy danych ze środowiska Oracle do PostgreSQL możliwe jest przeniesienie historii monitorowanej bazy danych wraz z historią.
Najważniejsze cechy: umożliwia sprawne lokalizowanie przyczyn problemów wydajnościowych w bazach danych; Minimalnie obciąża silnik bazy danych podczas zbierania parametrów jej pracy; System nie ma dostępu i nie analizuje danych biznesowych;Regularne aktualizacje i wsparcie producenta zapewniają wsparcie dla najnowszych wersji baz danych; Intuicyjny interface użytkownika i łatwość nawigacji również dla osób bez wiedzy technicznej.
2. ●
SHOW PROCESSLIST, mytop/innotop
●
slow log, query log, pt-query-digest, mysqldumpslow
●
co jeszcze da się wyciągnąć, czyli nieoczywiste zastosowania powyższych narzędzi
2
6. Pokazuje procesy połączone do MySQL
Aby wyświetlić wszystkie procesy wymaga uprawnienia
W przeciwnym wypadku pokazuje tylko procesy aktualnie połączonego usera
6
11. SELECT * FROM information_schema.processlist WHERE
Time > 10 AND Command != “Sleep”;
SELECT User, COUNT(*) FROM information_schema.processlist
GROUP BY User WITH ROLLUP;
11
12. Konsolowe narzędzie do monitorowania procesów podłączonych do MySQL.
Wymaga uprawnienia
Wyświetla stan procesów podłączonych do bazy danych.
12
13. MySQL on localhost (5.7.23-23-log)
up 40+12:49:58 [23:38:16]
Queries: 604.1M qps: 181 Slow: 281.8k Se/In/Up/De(%): 57/21/19/00
qps now: 306 Slow qps: 0.0 Threads: 70 ( 4/ 0) 73/03/00/00
Key Efficiency: 99.6% Bps in/out: 327.5k/725.6k Now in/out: 95.7k/235.8k
Id User Host/IP DB Time Cmd Query or State
-- ---- ------- -- ---- --- ----------
3957188 replicati mysql-9a29ec6a 838841 Binlog Master has sent all binlog to slave; waiting
for more updates
4145537 system us 830507 Connec Waiting for master to send event
4145780 system us 830495 Connec Waiting for an event from Coordinator
4145781 system us 830495 Connec Waiting for an event from Coordinator
4145782 system us 830495 Connec Waiting for an event from Coordinator
4145783 system us 830495 Connec Waiting for an event from Coordinator
4145784 system us 830495 Connec Waiting for an event from Coordinator
4145785 system us 830495 Connec Waiting for an event from Coordinator
4145786 system us 830495 Connec Waiting for an event from Coordinator
36561637 replicati 10.2.88.181 39996 Binlog Master has sent all binlog to slave; waiting
for more updates
4145778 system us 0 Connec Slave has read all relay log; waiting for
more updates
4145779 system us 0 Connec Waiting for an event from Coordinator
36948802 tasks app-b67c5b76 freshmail_ 0 Query INSERT INTO
`geo_subscribers`(`id_subscriber`,`id_campaign`,`id_geo_city`,`subscriber_opens`) VALUES (5
38005252 psuszalsk localhost test 0 Query show full processlist
13
17. wyświetla help
zmienia interwał czasowy wyświetlania (domyślnie 5 sekund)
włącza/wyłącza pokazywanie procesów w stanie “sleep”
wykonuje explain na zapytaniu
pokazuje pełne zapytanie
zabija podłączony process/zapytanie
17
18.
19. ● Możemy łatwo sprawdzić co aktualnie dzieje się na bazie danych
● Możliwość szybkiego wyłapania “zawieszonych” SQL
● Możliwość zabicia (kill) procesu
● Musimy “patrzeć” na output, żeby zobaczyć jakieś anomalie
● Nie wyłapiemy w ten sposób rzeczy które dzieją się poza “godzinami pracy”
19
20.
21. Log zawierający “ ” zapytania
Log zawierający wszystko co dzieje się na styku oraz połączonego klienta
Nie do wykorzystania w środowisku produkcyjnym (nie zoptymalizowany)
21
22. domyślnie slow log jest wyłączony
jeśli go włączymy będzie logował zapytania których czas wykonania wynosi
slow_query_log
long_query_time
min_examined_row_limit
log_slow_admin_statements
log_queries_not_using_indexes
22
23. włącza lub wyłącza logowanie
default = 0, dynamic = Yes, scope = Global
czas jaki musi wykonywać się SQL aby trafiłą do slow loga
default = 10, dynamic = Yes, scope = Global, Session
ile rekordów musi przejrzeć SQL podczas wykonywania zapytania żeby zwrócić wynik
default = 0, dynamic = Yes, scope = Global, Session
24. czy zapytania administracyjne mają się logować do loga
default = OFF, dynamic = Yes, scope = Global
czy zapytania które nie korzystają z indeksów mają się logować do loga
default = OFF, dynamic = Yes, scope = Global
24
25. Zmienne to takie które można zmieniać w trakcie działania . Można to wykorzystać
do płynnego włączania/wyłączania slow query log w dowolnym momencie lub zmiany parametrów:
SET GLOBAL long_query_time = 1
SET GLOBAL log_queries_not_using_indexes = ON
Można to wykorzystać do selektywnego ustawiania parametrów, np. jeśli mamy cykliczne skrypty
generujące raporty (np. w środku nocy), można ustawić:
SET SESSION long_query_time = 5
25
26. Query_time czas wykonania zapytania
Lock_time czas na jaki został założony lock na rekordach
Rows_sent liczba zwróconych rekordów przez zapytanie
Rows_examined liczba rekordów które musiały zostały przeskanowane
Rows_affected liczba rekordów która uległa zmianie
Tmp_tables liczba stworzonych tabel tymczasowych w pamięci
Tmp_disk_tables liczba stworzonych tabel tymczasowych w pamięci
Tmp_table_sizes wielkość danych w tabelach tymczasowych
QC_Hit czy zapytanie zostało znalezione w Query Cache
Full_scan zapytanie wykonało Full Table Scan
Full_join zapytanie wykonały Full Join (join bez indexów)
Filesort czy zapytanie wymagało dodatkowego sortowania w pamięci
Filesort_on_disk czy sortowanie odbyło się na dysku
26
31. ● Narzędzie od MySQL
● Grupuje SQLki tego samego typu “mock’ując” zmienne
● Nie pokazuje przykładowego zapytania
● Bardzo podstawowe narzędzie
● Narzędzie udostępnione w pakiecie Percona Toolkit
● Zapewnia bogatą analizę zapytań (histogram, sumaryczne czasy odpowiedzi)
● Może analizować zapytania z różnych źródeł (slow, general, binary log, tcpdump data)
31
32. # Overall: 18.11k total, 279 unique, 0.47 QPS, 0.98x concurrency _________
# Time range: 2019-04-05T01:47:23 to 2019-04-05T12:27:29
# Attribute total min max avg 95% stddev median
# ============ ======= ======= ======= ======= ======= ======= =======
# Exec time 37775s 362us 254s 2s 5s 4s 1s
# Lock time 12s 31us 218ms 641us 1ms 3ms 273us
# Rows sent 13.71M 0 108.22k 793.83 1.86k 4.75k 0.99
# Rows examine 5.44G 1000 4.47M 314.94k 961.27k 410.83k 245.21k
# Rows affecte 81.35M 0 1.01M 4.60k 9.33k 31.95k 0
# Bytes sent 1.61G 11 22.59M 93.33k 462.39k 529.92k 202.40
# Merge passes 4.30k 0 280 0.24 0 5.15 0
# Tmp tables 18.83k 0 492 1.06 2.90 11.27 0.99
# Tmp disk tbl 3.24k 0 171 0.18 1.96 3.33 0
# Tmp tbl size 7.43G 0 667.12M 430.22k 123.85k 11.51M 0
# Query size 67.13M 21 127.21k 3.80k 20.37k 15.75k 563.87
# Boolean:
# Filesort 42% yes, 57% no
# Filesort on 4% yes, 95% no
# Full join 0% yes, 99% no
# Full scan 14% yes, 85% no
# Tmp table 63% yes, 36% no
# Tmp table on 5% yes, 94% no
34. # Profile
# Rank Query ID Response time Calls R/Call V/M Item
# ==== ================== ================ ===== ======= ===== ===========
# 1 0xBF4E72ED91D75562 10946.9709 29.0% 4362 2.5096 0.45 SELECT campaign clients campaign
# 2 0x5BEB7856C24D4756 5412.6546 14.3% 752 7.1977 8.47 SELECT campaign emails ab_test_campaign
# 3 0xE98014575D3A5DB4 4744.8662 12.6% 3846 1.2337 0.12 SELECT subscribers_list subscribers_group
subscribers_list_visibility
# 4 0x8E5D739B4C326A9A 2046.5944 5.4% 677 3.0230 1.43 SELECT campaign campaign_open
# 5 0xD46B2563438C3586 1550.8857 4.1% 143 10.8454 3.54 INSERT SELECT export_report resign_why
custom_fields_value subscribers
# 6 0xF85A87664B959053 1332.7157 3.5% 545 2.4453 0.98 SELECT campaign_open
# 7 0xDC7974965D34F622 1013.6093 2.7% 110 9.2146 85.92 SELECT UNION links link_clicks subscribers
subscribers_list campaign_open campaign_time_opened subscribers subscribers_list subscribers subscribers_list
Rank numer porządkowy
Query ID fingerprint zapytania
Response time całkowity czas odpowiedzi, procentowy udział w przeanalizowanym logu
Calls liczba wykonanych zapytań
R/Call średni czas wykonania zapytania
V/M variance-to-mean ratio / index of dispersion
Item informacje o zapytaniu
35. # Query 1: 0.11 QPS, 0.29x concurrency, ID 0xBF4E72ED91D75562 at byte 59360468
# This item is included in the report because it matches --limit.
# Scores: V/M = 0.45
# Time range: 2019-04-05T01:47:23 to 2019-04-05T12:26:03
# Attribute pct total min max avg 95% stddev median
# ============ === ======= ======= ======= ======= ======= ======= =======
# Count 24 4362
# Exec time 28 10947s 6ms 10s 3s 4s 1s 2s
# Lock time 13 2s 171us 3ms 356us 541us 107us 332us
# Rows sent 0 459 0 1 0.11 0.99 0.30 0
# Rows examine 44 2.44G 1.37k 1.26M 586.02k 961.27k 236.29k 535.27k
# Rows affecte 0 0 0 0 0 0 0 0
[...]
# Boolean:
# Filesort 100% yes, 0% no
# Tmp table 100% yes, 0% no
36. # Query 7: 0.01 QPS, 0.05x concurrency, ID 0xDC7974965D34F622 at byte 14516565
# This item is included in the report because it matches --limit.
# Scores: V/M = 85.92
# Time range: 2019-04-05T06:36:20 to 2019-04-05T12:25:22
# Attribute pct total min max avg 95% stddev median
# ============ === ======= ======= ======= ======= ======= ======= =======
# Count 0 110
# Exec time 2 1014s 7ms 254s 9s 17s 28s 2s
# Lock time 0 113ms 394us 24ms 1ms 2ms 2ms 761us
# Rows sent 0 79 0 9 0.72 5.75 1.88 0
# Rows examine 1 74.79M 1.14k 2.20M 696.24k 2.15M 701.36k 462.39k
# Rows affecte 0 0 0 0 0 0 0 0
[...]
# Filesort 100% yes, 0% no
# Full scan 100% yes, 0% no
# Tmp table 100% yes, 0% no
# Tmp table on 100% yes, 0% no
37. # Query_time distribution
# 1us
# 10us
# 100us
# 1ms #
# 10ms #
# 100ms #
# 1s ################################################################
# 10s+
# Tables
# SHOW TABLE STATUS FROM `freshmail_utf8` LIKE 'campaign'G
# SHOW CREATE TABLE `freshmail_utf8`.`campaign`G
# SHOW TABLE STATUS FROM `freshmail_utf8` LIKE 'clients'G
# SHOW CREATE TABLE `freshmail_utf8`.`clients`G
# EXPLAIN /*!50100 PARTITIONS*/
SELECT `ca`.`id_campaign`
FROM `campaign` AS `ca`
JOIN `clients` ON (`ca`.`id_sub_clients` = `clients`.`id_clients`)
WHERE `ca`.`active`= 1
AND `ca`.`state` = 4 [...]
38. ● Mamy historię najcięższych/niepoprawnych zapytań
● W dowolnym momencie możemy przeanalizować slow loga i znaleźć najcięższe zapytania
● Analiza post factum
● Wyłapujemy “tylko” najgorsze SQLki
● Brak kontekstu
38
43. SET GLOBAL slow_query_log_file = ‘/my/new/file’;
SET GLOBAL long_query_time = 0;
SET GLOBAL min_examined_row_limit = 0;
● Dodatkowe obciążenie I/O co może skutkować spowolnieniem działania aplikacji
● Szybki przyrost slow loga na dysku
● Nie zaleca się pozostawiania w takim stanie na dłuższy okres czasu
● Należy przywrócić stare ustawienia po czasie
44. tcpdump -s 65535 -x -nn -q -tttt -i any -c 400000 port 3306 > tcpdump.log
cat tcpdump.log > pt-query-digest --type tcpdump
● Dodatkowe obciążenie I/O co może skutkować spowolnieniem działania serwera
● Szybki przyrost zajętego miejsca na dysku
● Nie jest to format slow loga, jest nieczytelne dla człowieka
● Dane oparte tylko na analizie SQL, brak informacji o wykonaniu zapytania z silnika bazy danych
● Nadaje się tylko do pobieżnej analizy ruchu ad hoc