Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅
π₯ Linux Performance & Deep Debugging ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ ΠΠΎΠ³Π΄Π° Π΄Π°ΡΠ±ΠΎΡΠ΄Ρ ΡΠΆΠ΅ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ - ΡΡ ΠΈΠ΄ΡΡΡ Π² ΠΠ‘. ΠΠΎΡ 10 ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½-ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠ°Ρ : 1. strace -p <PID> -c β ΡΡΠ°ΡΡΠΈΡΡΠ΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, Π½Π° ΡΡΠΌ ΠΎΠ½ Π·Π°Π²ΠΈΡ 2. perf top -p <PID> β live-ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ CPU, ΡΡΠ°Π·Ρ Π²ΠΈΠ΄Π½ΠΎ βΠ³ΠΎΡΡΡΠΈΠ΅β ΡΡΠ½ΠΊΡΠΈΠΈ 3. tcpdump -i eth0 -w capture.pcap port 8080 β Π·Π°Ρ Π²Π°Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ° Π΄Π»Ρ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° 4. ab -n 10000 -c 100 http://localhost/ β Π±ΡΡΡΡΡΠΉ Π½Π°Π³ΡΡΠ·ΠΎΡΠ½ΡΠΉ ΡΠ΅ΡΡ: 10k Π·Π°ΠΏΡΠΎΡΠΎΠ², 100 ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ 5. kubectl debug node/node1 -it --image=busybox β ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ Π½ΠΎΠ΄Π΅ ΡΠ΅ΡΠ΅Π· Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ 6. dmesg -T | grep -i 'oom' β ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° OOM kill ΡΠΎΠ±ΡΡΠΈΠΉ ΡΠ΄ΡΠ° 7. lsof -i :8080 β ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°Π½ΡΠ» ΠΏΠΎΡΡ 8. iostat -xz 1 5 β ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° Π΄ΠΈΡΠΊΠ° Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ 9. vmstat -w 1 5 β ΠΏΠ°ΠΌΡΡΡ, swap ΠΈ CPU Π² Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ΅ 10. kubectl debug pod/app -it --copy-to=debug-pod --image=nicolaka/netshoot β Π³Π»ΡΠ±ΠΎΠΊΠ°Ρ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ° ΡΠ΅ΡΠΈ Π²Π½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΠΎΠ³Π΄Π° Π²ΡΡ Π³ΠΎΡΠΈΡ - ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΏΠ°ΡΠ°ΡΡ. Π‘ΠΎΡ ΡΠ°Π½ΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΏΡΠΎΠ΄-ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠΎΠΌ β‘