{"id":8961,"date":"2023-01-29T14:49:19","date_gmt":"2023-01-29T17:49:19","guid":{"rendered":"https:\/\/swiv.com.br\/?p=8961"},"modified":"2023-01-29T14:49:19","modified_gmt":"2023-01-29T17:49:19","slug":"how-to-identify-network-bottlenecks-on-oracle-linux","status":"publish","type":"post","link":"https:\/\/swiv.com.br\/index.php\/2023\/01\/29\/how-to-identify-network-bottlenecks-on-oracle-linux\/","title":{"rendered":"How to identify Network-Bottlenecks on Oracle Linux"},"content":{"rendered":"\n<p>Parecido com o artigo sobre consumo de CPU, Mem\u00f3ria e I\/O, hoje escreverei sobre Network.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Netstat<\/h2>\n\n\n\n<p>A ferramenta que nos permite uma an\u00e1lise preliminar sobre o consumo de Network em nosso ambiente \u00e9 o netstat. Com a op\u00e7\u00e3o &#8220;-ptc&#8221;, conseguimos a lista do PID, tipo de conex\u00e3o, de forma cont\u00ednua, conforme exemplo abaixo:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n&#x5B;root@oel7 ~]# netstat -ptc\nActive Internet connections (w\/o servers)\nProto Recv-Q Send-Q Local Address           Foreign Address         State       PID\/Program name\ntcp        0      0 oel7.localdomain:ssh    192.168.0.8:54791       ESTABLISHED 5219\/sshd: oracle &#x5B;\ntcp        0      0 localhost:54829         localhost:11777         ESTABLISHED 3630\/ocssd.bin\ntcp        0      0 localhost:11777         localhost:54829         ESTABLISHED 3630\/ocssd.bin\ntcp        0      0 oel7.localdomain:ssh    192.168.0.8:55650       ESTABLISHED 28094\/sshd: root@no\ntcp        0    144 oel7.localdomain:ssh    192.168.0.8:55649       ESTABLISHED 28089\/sshd: root@pt\ntcp        0      0 oel7.localdomain:ssh    192.168.0.8:54790       ESTABLISHED 5215\/sshd: oracle &#x5B;\nActive Internet connections (w\/o servers)\nProto Recv-Q Send-Q Local Address           Foreign Address         State       PID\/Program name\ntcp        0      0 oel7.localdomain:ssh    192.168.0.8:54791       ESTABLISHED 5219\/sshd: oracle &#x5B;\ntcp        0      0 localhost:54829         localhost:11777         ESTABLISHED 3630\/ocssd.bin\ntcp        0      0 localhost:11777         localhost:54829         ESTABLISHED 3630\/ocssd.bin\ntcp        0      0 oel7.localdomain:ssh    192.168.0.8:55650       ESTABLISHED 28094\/sshd: root@no\ntcp        0     48 oel7.localdomain:ssh    192.168.0.8:55649       ESTABLISHED 28089\/sshd: root@pt\ntcp        0      0 oel7.localdomain:ssh    192.168.0.8:54790       ESTABLISHED 5215\/sshd: oracle &#x5B;\n^C\n<\/pre><\/div>\n\n\n<p>Caso a coluna &#8220;Send-Q&#8221; (bytes not acknowleged by remote host) estiver constantemente com valores altos, pode indicar um consumo alto de network. Caso seja associado \u00e0 um processo espec\u00edfico, e se for oracle, podemos procurar dentro do database pelo PID. Pode ser uma query executando em um banco remoto via DB_LINK, por exemplo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">SAR<\/h2>\n\n\n\n<p>O comando SAR nos d\u00e1 vis\u00e3o sobre muitas verticais do sistema, mas com a op\u00e7\u00e3o abaixo, conseguimos ter dados sobre as interfaces de rede e seu respectivo uso, por exemplo o n\u00famero de pacotes transmitidos e recebidos por segundo:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n&#x5B;oracle@oel7 ~]$ sar -n DEV\nLinux 4.14.35-1902.3.2.el7uek.x86_64 (oel7.localdomain)         01\/25\/2023      _x86_64_        (6 CPU)\n\n08:06:49 PM       LINUX RESTART\n\n08:10:02 PM     IFACE   rxpck\/s   txpck\/s    rxkB\/s    txkB\/s   rxcmp\/s   txcmp\/s  rxmcst\/s\n08:20:01 PM virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00\n08:20:01 PM    enp0s3      4.97      8.09      0.34      0.95      0.00      0.00      0.15\n08:20:01 PM        lo      0.07      0.07      0.00      0.00      0.00      0.00      0.00\n08:20:01 PM    virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00\n08:30:01 PM virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00\n08:30:01 PM    enp0s3      4.99      8.25      0.34      0.95      0.00      0.00      0.14\n08:30:01 PM        lo      0.07      0.07      0.00      0.00      0.00      0.00      0.00\n08:30:01 PM    virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00\n08:40:01 PM virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00\n08:40:01 PM    enp0s3      4.96      8.24      0.33      0.95      0.00      0.00      0.15\n08:40:01 PM        lo      0.07      0.07      0.00      0.00      0.00      0.00      0.00\n08:40:01 PM    virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00\n08:50:01 PM virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00\n08:50:01 PM    enp0s3      5.89      8.93      0.44      1.07      0.00      0.00      0.13\n08:50:01 PM        lo      0.07      0.07      0.00      0.00      0.00      0.00      0.00\n08:50:01 PM    virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00\nAverage:    virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00\nAverage:       enp0s3      5.20      8.38      0.36      0.98      0.00      0.00      0.14\nAverage:           lo      0.07      0.07      0.00      0.00      0.00      0.00      0.00\nAverage:       virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00\n<\/pre><\/div>\n\n\n<p>Nota: o &#8220;DEV&#8221; significa network devices.<\/p>\n\n\n\n<p>Caso seja identificado alguma anomalia de conex\u00e3o entre servidores, podemos utilizar o comando &#8220;traceroute&#8221; para capturar a rota usada pelos pacotes enviados de uma m\u00e1quina A para a m\u00e1quina B. Desse modo, o time de Redes\/S.O pode intervir caso alguma configura\u00e7\u00e3o n\u00e3o esteja correta (por exemplo, apontamento de roteador incorreto, provocando mais saltos, etc):<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n&#x5B;oracle@oel7 ~]$ ping 192.168.0.123\nPING 192.168.0.123 (192.168.0.123) 56(84) bytes of data.\n64 bytes from 192.168.0.123: icmp_seq=1 ttl=255 time=0.798 ms\n64 bytes from 192.168.0.123: icmp_seq=2 ttl=255 time=0.418 ms\n^C\n--- 192.168.0.123 ping statistics ---\n2 packets transmitted, 2 received, 0% packet loss, time 1019ms\nrtt min\/avg\/max\/mdev = 0.418\/0.608\/0.798\/0.190 ms\n&#x5B;oracle@oel7 ~]$ traceroute 192.168.0.123\ntraceroute to 192.168.0.123 (192.168.0.123), 30 hops max, 60 byte packets\n 1  192.168.0.123 (192.168.0.123)  1.464 ms  1.390 ms  1.289 ms\n&#x5B;oracle@oel7 ~]$\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Parecido com o artigo sobre consumo de CPU, Mem\u00f3ria e I\/O, hoje escreverei sobre Network. Netstat A ferramenta que nos permite uma an\u00e1lise preliminar sobre o consumo de Network em nosso ambiente \u00e9 o netstat. Com a op\u00e7\u00e3o &#8220;-ptc&#8221;, conseguimos a lista do PID, tipo de conex\u00e3o, de forma cont\u00ednua, conforme exemplo abaixo: Caso a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-8961","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/posts\/8961","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=8961"}],"version-history":[{"count":0,"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/posts\/8961\/revisions"}],"wp:attachment":[{"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=8961"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=8961"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/swiv.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=8961"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}