Почему загрузка интернета так высока, когда я загружаю немного?

Общая месячная пропускная способность интернета

я использую vnstat контролировать использование интернета:

$ vnstat

                      rx      /      tx      /     total    /   estimated
 eth0:
       Jul '17    210.70 GiB  /   51.00 GiB  /  261.71 GiB
       Aug '17    275.79 GiB  /   70.54 GiB  /  346.33 GiB  /  348.91 GiB
     yesterday      5.47 GiB  /    2.08 GiB  /    7.55 GiB
         today      2.89 GiB  /    1.36 GiB  /    4.26 GiB  /    5.52 GiB

 wlan0:
       Jul '17         0 KiB  /       0 KiB  /       0 KiB
       Aug '17         0 KiB  /       0 KiB  /       0 KiB  /       0 KiB
     yesterday         0 KiB  /       0 KiB  /       0 KiB
         today         0 KiB  /       0 KiB  /       0 KiB  /      --    

Я переключил интернет-провайдеров 6 месяцев назад, и новый интернет-провайдер требователен к общему ежемесячному использованию, что заставляет меня уделять больше внимания статистике.

Интернет в реальном времени

Я проверил параметры мониторинга в Ask Ubuntu, и ответы указывают на nethogs который сообщает только КБ / с по процессу, который неизбежно означает, что Firefox или Chrome оба сообщают в КБ / с:

Это не полезно, потому что я уже знаю, что я использую Chrome и Firefox. Вопрос в том, "какая вкладка?" или это даже вкладка? Обратите внимание, что процессы выполняются как root? Я никогда не использую sudo с Chrome или Firefox.

Следственные 5W загрузки данных

Есть 5 W:

  • Кто загружает 70 ГБ данных с моего ноутбука каждый месяц? Я делаю резервное копирование ежедневно на gmail.com, который составляет 5,4 МБ скриптов, документов, настроек конфигурации, а что нет. Это 150 МБ в месяц. Кто захватывает остальные 69 ГБ?
  • Какая программа захватывает эти данные? Я не могу использовать один идентификатор процесса для Chrome или Firefox в качестве ответа. Мне нужно знать вкладку, которая указывает на сайт. Я не могу использовать root и какой-то случайный IP-адрес в качестве ответа.
  • Куда идут эти данные? т.е. IP-адрес.
  • Когда это происходит? Это когда я смотрю фильм? Смотря новости в интернете в Аль-Джазире или РТ? Какой-то пузырь уведомлений о загрузке будет неплохо.
  • Зачем? Мне не нужен ответ на этот вопрос. Другие 4 W будет достаточно. Это может быть Vault 7 или нет. Вы не можете подать в суд на ЦРУ, и если вы не можете победить их, вы должны просто заблокировать их.

Ежедневные интернет-привычки

В Интернете я делаю только шесть вещей:

  • Посетите Ask Ubuntu и прочитайте Q&As. Загрузка должна быть <1 МБ / день, потому что любой ответ, который я публикую, составляет < 30 КБ или обновление.
  • Смотрите Al-Jazeera.com в прямом эфире, который использует HTML5 на youtube.com
  • Смотрите rt.com/on-the-air, который использует Flash Player
  • Ежедневно делайте резервные копии моих скриптов, документов и файлов конфигурации по электронной почте на мою учетную запись gmail.com, а размер файла.tar составляет 5,4 МБ.
  • Посмотрите фильм на случайных веб-сайтах в разрешении 1080p, если вам повезет, иначе - 480p или 720p, если вам не повезет.
  • Поиск в Google и посещение веб-сайтов для изучения технических проблем, связанных с Linux/Ubuntu.

Резюме

Я знаком с Shift + Esc в Chrome, чтобы отслеживать сетевую статистику в режиме реального времени с помощью Chrome Tab, но то, что работает в фоновом режиме, собирает статистику предпочтительнее.

Я не запускал Windows 8.1 более месяца, так что загрузки там не происходит. Это все в Linux/Ubuntu.

Что я могу сделать, чтобы сузить свой поиск массовых загрузок?

Спасибо, что прочитали это далеко.

2 ответа

Решение

Примечание. В этом ответе рассматриваются только некоторые из желаемых "Исследовательских 5W загрузок данных".

Используйте tcpdump для захвата всего трафика пакетов и используйте некоторую постобработку для извлечения желаемой информации.

sudo tcpdump -i enp4s0 -w 'ext-%F-%H-%M-%S.bin' -G 3600 -z /home/doug/bin/packet_post_processor2

Куда:
мой WAN интерфейс enp4s0;
Имена файлов автоматически включают дату и время (требуется дополнительный пакет, но я не могу вспомнить, какой);
Я прошу ротацию файлов один раз в час;
Каждый файл подвергается последующей обработке packet_post_processor сценарий (2 для этого ответа).

Скрипт постобработки:

#!/bin/dash
#
# packet_post_processor2 Doug Smythies. 2017.09.08
#    Edits as required for updated c prgram, and bad sort order.
#    There may be little use in sort by packets count, but for now
#    it remians.
#
# packet_post_processor2 Doug Smythies. 2017.09.01
#    This script will be called from the always running tcpdump.
#    It is called for every binary file rotation.
#    The purpose is to make summary files of things that one
#    may want to investigate in more detail later on.
#
#    This version is for WinEunuuchs2Unix and
# https://Ask-ubuntu.ru/questions/951783/how-to-find-out-who-is-taking-70-gb-of-data-from-me-each-month
#

#check that the call included the file name, and only the file name, to use.
if [ $# -ne 1 ]
then
  echo "Usage - $0  file-name"
  exit 1
fi

# check that the file actually exists:
if [ ! -f $1 ]
then
  echo "tcpdump binary file $1 does not exist, aborting..."
  exit 1
fi

echo "data extraction 1: All the packets..."
# Note: Using the -e option will ease subsequent bytes per unit time calculations
sudo tcpdump -n -tttt -e -r $1 >all_e.txt

echo "data extraction 2: The outgoing normal packets..."
# Note: We might want to check that something important doesn't get missed here.
# Note: replace the fake IP address with your actual IP address.
grep ": XXX\.XXX\.XXX\.XXX\." all_e.txt | grep Flags >outgoing.txt

echo "data extraction 3: Make a histogram of the destination IP addresses by packets..."
# Note: use field 13
cut -d" " -f13 outgoing.txt | sed 's/.[^.]*$//' | sort | uniq -c | sort -g >outhisto.txt

# Phase 2: Maximum packet count might not mean maximum byte count, so figure out maximum byte count

echo "data extraction 4: Sort the outgoing file by destination IP address."
LC_ALL=C sort -k 13 <outgoing.txt >outgoing.srt

echo "data extraction 5: Now, calculate bytes per IP and bytes per IP/16 and make sorted historgrams"
# Note: There might be some clever awk or whatever way to do this, but I have a c program.
./tcpdump_bytes outgoing.srt outb.txt out16.txt
sort --general-numeric-sort <outb.txt >outhistob.txt
sort --general-numeric-sort <out16.txt >outhistob16.txt

#Leave the intermidiate files, just for now, while we debug.
#
# packet_post_process. End.

Программа c, вызываемая из скрипта:

    /*****************************************************************************
*
* tcpdump_bytes.c 2017.09.08 Smythies
*       By sorting the input file before running this program, it can do bytes
*       per IP all on its own, and in one pass through the file. At this time,
*       it is for outgoing only. A future revision will add command line
*       options for incoming and such.
*       Might as well group by 1st 2 IP address bytes at the same time,
*       i.e. for some (not all) of those multiple IP situations.
*
* tcpdump_bytes.c 2017.09.01 Smythies
*       Count the bytes for all the packets in the passed file.
*       See also tcpdump_extract.c, from which this was taken.
*       This program is very quite, just printing bytes, unless there
*       is some error. The idea is that is part of something bigger and
*       therefore extra verbosity would just get in the way.
*
*       Note: The input tcpdump file needs to have been done
*             with the -e option.
*
*****************************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_LENGTH 2000  /* maximum line length */

void main(int argc, char **argv){

   char in_buffer[MAX_LENGTH];
   char *infile, *outfile1, *outfile2;
   char *index, *index2;
   FILE *inf, *out1, *out2;
   unsigned current_bytes, sip3, sip2, sip1, sip0, sport, dip3, dip2, dip1, dip0, dport;
   unsigned dest_ip, dest_ip_16, dest_ip_old, dest_ip_16_old;
   unsigned num_lines, num_ips, num_16s;
   unsigned long long total_bytes, total_bytes_16;

   switch(argc){
   case 4:
      infile = argv[1];
      outfile1 = argv[2];
      outfile2 = argv[3];
      break;
   default:
      printf("tcpdump_bytes infile outfile1 outfile2\n");
      printf("  parse outgoing bytes per IP out of a sorted tcpdump file where the -e option was used.\n");
      printf("  infile is sorted tcpdump output file; oufile1 is bytes per IP; outfile 2 is bytes per IP/16.\n");
      exit(-1);
   } /* endcase */

   if((inf = fopen(infile, "rt")) == NULL){
      printf("Unable to open input file '%s'\n", infile);
      exit(-1);
   } /* endif */
   if((out1 = fopen(outfile1, "wt")) == NULL){
      printf("Error opening output file '%s'\n", outfile1);
      exit(-1);
   } /* endif */
   if((out2 = fopen(outfile2, "wt")) == NULL){
      printf("Error opening output file '%s'\n", outfile2);
      exit(-1);
   } /* endif */

   total_bytes = 0;
   total_bytes_16 = 0;
   dest_ip_old = 0;
   dest_ip_16_old = 0;
   num_lines = 0;
   num_ips = 0;
   num_16s = 0;

   while((fgets(in_buffer, MAX_LENGTH, inf)) != NULL){       /* do infile line at a time */
      num_lines++;

      if((index = strstr(in_buffer, "), length ")) != NULL){ /* find search string if it is there, then parse the data */
         sscanf(index, "), length %u: %u.%u.%u.%u.%u > %u.%u.%u.%u.%u:",
            &current_bytes,
            &sip3, &sip2, &sip1, &sip0,
            &sport,
            &dip3, &dip2, &dip1, &dip0,
            &dport);
      } else {
         printf("tcpdump_bytes: Got an odd line: %s", in_buffer);
      } /* endif */
      dest_ip_16 = (dip3 << 24) + (dip2 << 16);
      dest_ip = dest_ip_16 + (dip1 << 8) + dip0;
//    printf("debug: B: %u  S: %u.%u.%u.%u.%u  D: %u.%u.%u.%u.%u  %u  %u\n", current_bytes, sip3, sip2, sip1, sip0, sport, dip3, dip2, dip1, dip0, dport, dest_ip, dest_ip_16);

      if(dest_ip != dest_ip_old){
         if(total_bytes != 0){
            fprintf(out1, "%llu %u.%u.%u.%u\n", total_bytes, (dest_ip_old >> 24) & 0xff, (dest_ip_old >> 16) & 0xff, (dest_ip_old >> 8) & 0xff, dest_ip_old & 0xff);
            total_bytes = 0;
         } /* endif */
         dest_ip_old = dest_ip;
         num_ips++;
      } /* endif */
      total_bytes = total_bytes + (unsigned long long) current_bytes;

      if(dest_ip_16 != dest_ip_16_old){
         if(total_bytes_16 != 0){
            fprintf(out2, "%llu %u.%u.0.0/16\n", total_bytes_16, (dest_ip_16_old >> 24) & 0xff, (dest_ip_16_old >> 16) & 0xff);
            total_bytes_16 = 0;
         } /* endif */
         dest_ip_16_old = dest_ip_16;
         num_16s++;
      } /* endif */
      total_bytes_16 = total_bytes_16 + (unsigned long long) current_bytes;
   } /* endwhile */

   /* don't forget to output the last data */
   if(total_bytes != 0){
      fprintf(out1, "%llu %u.%u.%u.%u\n", total_bytes, dip3, dip2, dip1, dip0);
   } else {
      printf("tcpdump_bytes: Something is wrong. Last IP address has no bytes.\n");
   } /* endif */

   if(total_bytes_16 != 0){
      fprintf(out2, "%llu %u.%u.0.0/16\n", total_bytes_16, dip3, dip2);
   } else {
      printf("tcpdump_bytes: Something is wrong. Last IP/16 address has no bytes.\n");
   } /* endif */

   fclose(inf);
   fclose(out1);
   fclose(out2);
   printf("tcpdump_bytes: Done. Processed %d lines and %d IP addresses and %d /16 addresses\n", num_lines, num_ips, num_16s);
} /* endprogram */

Обратите внимание, что некоторые файлы будут засорены следующей обработкой часов. Я исправлю это позже.

Краткое описание того, что делает скрипт постобработки:
Во-первых, двоичный файл tcpdump преобразуется в текст сводки по каждому пакету. Пример (мой адрес был изменен на XXX.XXX.XXX.XXX):

2017-05-31 08:10:31.721956 00:22:b0:75:c2:bd > 6c:be:e9:a7:f1:07, ethertype IPv4 (0x0800), length 400: XXX.XXX.XXX.XXX.52779 > 38.113.165.77.443: Flags [P.], seq 1:347, ack 1, win 256, length 346
2017-05-31 08:10:31.826241 6c:be:e9:a7:f1:07 > 00:22:b0:75:c2:bd, ethertype IPv4 (0x0800), length 157: 38.113.165.77.443 > XXX.XXX.XXX.XXX.52779: Flags [P.], seq 1:104, ack 347, win 1026, length 103
2017-05-31 08:10:31.877945 00:22:b0:75:c2:bd > 6c:be:e9:a7:f1:07, ethertype IPv4 (0x0800), length 54: XXX.XXX.XXX.XXX.52779 > 38.113.165.77.443: Flags [.], ack 104, win 256, length 0
2017-05-31 08:10:32.603768 00:22:b0:75:c2:bd > 6c:be:e9:a7:f1:07, ethertype ARP (0x0806), length 42: Request who-has XXX.XXX.XXX.YYY tell XXX.XXX.XXX.XXX, length 28
2017-05-31 08:10:32.630960 6c:be:e9:a7:f1:07 > 00:22:b0:75:c2:bd, ethertype ARP (0x0806), length 60: Reply XXX.XXX.XXX.YYY is-at 6c:be:e9:a7:f1:07, length 46
2017-05-31 08:10:33.643468 00:90:d0:63:ff:00 > 01:00:5e:00:00:01, ethertype IPv4 (0x0800), length 60: 10.197.248.13 > 224.0.0.1: igmp query v2
2017-05-31 08:10:37.448732 00:22:b0:75:c2:bd > 6c:be:e9:a7:f1:07, ethertype IPv4 (0x0800), length 90: XXX.XXX.XXX.XXX.53120 > 91.189.89.199.123: NTPv4, Client, length 48 

Это специально, что пара пакетов ARP включена в пример, поэтому покажите что-то, что будет исключено из дальнейшей обработки.
Раздражающий пакет IGMP с IP-адреса частной локальной сети получен от моего интернет-провайдера и также будет исключен из дальнейшей обработки. Однако, если мой провайдер когда-нибудь заявит, что я превысил мой месячный лимит данных, я укажу на такие пакеты, когда скажу, что я не буду платить. Обратите внимание на две длины, показанные в каждой строке: первая - это байты на проводе, а вторая - длина полезной нагрузки. Нам нужны байты в проводнике, и поэтому мы используем опцию -e с tcpdump.

Во-вторых, исходящий пакет может быть однозначно идентифицирован путем нахождения ": XXX.XXX.XXX.XXX.", Поэтому извлеките все исходящие пакеты, кроме ARP и ICMP, используя grep.

В-третьих, используя пробел в качестве разделителя, поле 13 является IP-адресом назначения, поэтому используйте сложную группу переданных команд для извлечения, подсчета и сортировки пакетов IP-адресов назначения.

Далее сортируйте исходящие пакеты по IP-адресу назначения.
В-пятых, используйте программу c для вычисления байтов на IP и байтов на IP/16 и сортировки выходных данных в гистограммы.

В-шестых, вручную исследуйте верхние IP-адреса в попытке определить, что происходит. Обратите внимание, что очень часто можно найти соответствующий DNS-запрос прямого просмотра в выводе tcpdump.

В качестве примера я посмотрел на свои данные WAN/LAN между 2017-05-31 08:09:33 и 2017-08-09 22:13:11 и отредактировал то, что нашел для различных IP-адресов.

Сначала несколько лучших по количеству пакетов:

packets IP Address      Added Comment
 299517 91.189.95.84    Ubuntu stuff
 301129 198.38.112.140  Netflix
 306815 17.253.31.206   Apple stuff
 319558 129.97.134.71   Ubuntu stuff (mirror, I think)
 333334 91.189.88.152   Ubuntu stuff
 352141 91.189.88.39    Ubuntu stuff
 353160 209.121.139.153 Telus (Microsoft updates streaming)
 368669 209.121.139.163 Telus (Microsoft updates streaming)
 389928 91.189.88.161   Ubuntu stuff
 396087 23.60.74.158    deploy.static.akamaitechnologies.com (?)
 421259 198.38.112.170  Netflix
 474506 17.253.31.205   Apple stuff
 477706 198.38.109.153  Netflix
 480452 198.38.112.159  Netflix
 540261 198.38.112.173  Netflix
 574592 198.38.112.132  Netflix
 710022 198.38.112.174  Netflix
 728434 209.121.139.144 Telus (Microsoft updates streaming)
 738839 198.38.112.130  Netflix
 883688 198.38.109.171  Netflix
1049778 198.38.112.154  Netflix
2166582 72.21.81.200    Hmmmm ? MCI Communications Services, (Skype, I think)
7512548 13.107.4.50     Microsoft (updates)

Во-вторых, первые несколько байтов:

Bytes    IP                     Added Comment
32358580 17.253.31.205          Apple stuff
32625068 198.38.112.159         Netflix
34220805 172.217.3.206          Google web crawler
36628021 198.38.112.173         Netflix
37022702 17.188.208.132         Apple stuff
39105254 198.38.112.132         Netflix
40697177 209.121.139.144        Telus Microsoft updates file streaming
48247623 198.38.112.174         Netflix
49537980 64.4.54.254            Microsoft
50358753 198.38.112.130         Netflix
59623846 198.38.109.171         Netflix
71532166 198.38.112.154         Netflix
98480036 207.167.198.18         Telus e-mail stuff
139907010 72.21.81.200          Hmmmm ? MCI Communications Services, (Skype, I think)
210138801 91.189.95.84          Ubuntu stuff
325511064 204.79.197.213        Microsoft (?) msedge.net storage.skyprod.akadns.net
479586878 13.107.4.50           Microsoft (updates)

Обратите внимание на то, что, поскольку Netflix, например, использует много IP-адресов, он может упасть ниже в рейтинге, чем он должен быть, если бы все его IP-адреса рассматривались как один.

В-третьих, учитываются несколько первых / 16 групп по байту. Обратите внимание, что Netflix теперь самый большой:

107592753 209.52.0.0/16         cache.google.com (for example)
116538884 207.167.0.0/16        Telus e-mail stuff
120769715 17.188.0.0/16         Apple. store-025-failover2.blobstore-apple.com.akadns.net (for example)
139261655 52.218.0.0/16         s3-us-west-2.amazonaws.com (for example) ? Hmmm...
147091123 172.217.0.0/16        Google web crawler
153146532 17.248.0.0/16         p46-keyvalueservice.fe.apple-dns.net. Apple iCloud Drive
183300509 72.21.0.0/16          Skype (I think)
213119564 209.121.0.0/16        Telus Microsoft updates file streaming
333374588 204.79.0.0/16         Microsoft
354346088 91.189.0.0/16         Ubuntu stuff
488793579 13.107.0.0/16         Microsoft (updates)
621733032 198.38.0.0/16         Netflix

Проблема сохраняется 7 января 2018 года в Firefox

перейдите вниз, "Редактировать 6", чтобы увидеть только проблему Firefox

Проблема решена 13 декабря 2017

перейдите вниз, "Редактировать 5", чтобы увидеть решение Chrome

Отвечая на 4 из 5 W

Мне удалось определить, кто, что, где и когда загружает данные:

  • Кто = rt.com / в эфире.
  • Что = плагин Flashplayer
  • Где = в Google Chrome и Mozilla Firefox
  • Когда = утро и вечер, когда я смотрю международные новости

"Почему" может быть ошибкой, шпионским ПО или просто Flashplayer сконфигурирован для сбора информационных потоков в целях сообщения о сбоях.

В следующем разделе подробно описываются шаги по выделению Кто, Что, Где и Когда.

использование vnstat -l отслеживать загрузку трафика

Заранее извиняюсь за изображения на экране ниже, а не копировать и вставлять текст. Я делал снимки, не зная, была ли информация релевантной до тех пор, пока не были проведены все тесты.

Первый шаг в тестировании - закрыть все 10 вкладок Chrome и 3 вкладки Firefox.

Затем откройте терминал с помощью Ctrl + Alt + T и введите vnstat -l, Предполагается, что вы уже установили команду vnstat. Если нет, см. Этот ответ о vnstat в Ask Ubuntu.

Затем одновременно открывайте одну вкладку Chrome или Firefox и следите за уровнем использования:

Просмотр 80-минутного документального фильма о вокалисте / продюсере ELO:

Контент в формате 720p. Один загруженный гигабайт и 40 загруженных мегабайт имеют соотношение tx к rx 4% и выглядят нормальными.

Просмотр 5 -минутной прямой трансляции новостей в формате Flashplayer с помощью Google Chrome:

Контент в формате 1080p. Было загружено 103,37 МБ, что является нормальным, но почти в два раза больше (192,62 МБ = 186%), что не является нормальным.

Просмотр 30 минут записанных новостей, загружаемых с того же международного вещателя новостей:

Я приостанавливал предварительно записанную загружаемую трансляцию 1/2 часа много раз, пока она воспроизводилась. Прошедшее время фактически составило 72 минуты. Тем не менее, общий объем загрузок (они записаны в формате 720p) составляет 508,12 МБ, а объем загрузок - 21,63 МБ при соотношении tx к rx 4%.

Резюме

Если вы не являетесь разработчиком программного обеспечения, постоянно загружающим на github или внештатный художник-график, постоянно загружающий ваши работы клиентам, нормальное отношение tx к rx должно составлять около 4%.

В этом случае ежемесячный учет в Интернете составил 275,79 ГиБ, а 70,54 ГиБ - при соотношении tx/rx 26%. Виновником была прямая трансляция новостей Flashplayer, где соотношение tx/rx составляет 186%!

Параноидальные панды, живущие в бамбуковых лесах вокруг нас, могут подумать, что ЦРУ или АНБ стоят за этими большими загрузками. Я думаю, что это просто недостаток дизайна в FlashPlayer.

Возможно, это может быть российский вещатель (RT), базирующийся в Москве, использующий израильское программное обеспечение с глюками. Я говорю это потому, что ранее я обнаружил сбой на их новостном веб-сайте, где раздел комментариев поглотил 1 ГБ ОЗУ за несколько часов до обновления вкладки. К сожалению, мои первоначальные вопросы и ответы, кажется, были удалены, но после публикации моих первоначальных вопросов и ответов здесь, в AU, кто-то прочитал их и исправил эту проблему. Надеюсь, что подобные люди найдут эту ветку и исправят эту проблему.

Это важно, потому что мы, как потребители, платим за просмотр СМИ. Мы не платим за загрузку того, что мы смотрим, с удвоенной пропускной способностью, чтобы "только Google знает, где".


Правка - Тесты под ядро ​​4.12.10

Предыдущие тесты проводились под ядром 4.4.0-93, Я свежо установил ядро 4.12.10 и перезагрузил пару раз и провел новые тесты. Как для Firefox, так и для Chrome результаты значительно улучшаются, но соотношение tx/rx неприемлемо.

  • Firefox за 5,33 минуты загрузил 108,04 МБ и 57,71 МБ для отношения tx/rx 53,4%
  • Chrome за 5,57 минут загрузил 117,34 МБ и 59,75 МБ для коэффициента передачи / rx 50,9%

Собранные данные показывают ниже. В свете этих результатов я буду переделывать 4.4.0-93 тесты после перезагрузки пару раз.

Firefox Flashplayer 5 минут прямых новостей в формате 1080p:

rick@dell:~$ vnstat -l
Monitoring eth0...    (press CTRL-C to stop)

   rx:        1 kbit/s     1 p/s          tx:        1 kbit/s     1 p/s^C


 eth0  /  traffic statistics

                           rx         |       tx
--------------------------------------+------------------
  bytes                   108.04 MiB  |       57.71 MiB
--------------------------------------+------------------
          max           14.72 Mbit/s  |    10.64 Mbit/s
      average            2.77 Mbit/s  |     1.48 Mbit/s
          min               0 kbit/s  |        0 kbit/s
--------------------------------------+------------------
  packets                     133538  |          104640
--------------------------------------+------------------
          max               1395 p/s  |        1219 p/s
      average                417 p/s  |         327 p/s
          min                  0 p/s  |           0 p/s
--------------------------------------+------------------
  time                  5.33 minutes

Chrome Flashplayer 5 минут прямых новостей в формате 1080p:

rick@dell:~$ vnstat -l
Monitoring eth0...    (press CTRL-C to stop)

   rx:        0 kbit/s     0 p/s          tx:        0 kbit/s     0 p/s^C


 eth0  /  traffic statistics

                           rx         |       tx
--------------------------------------+------------------
  bytes                   117.34 MiB  |       59.75 MiB
--------------------------------------+------------------
          max           25.13 Mbit/s  |     9.92 Mbit/s
      average            2.88 Mbit/s  |     1.47 Mbit/s
          min               0 kbit/s  |        0 kbit/s
--------------------------------------+------------------
  packets                     139174  |          126372
--------------------------------------+------------------
          max               2363 p/s  |        1441 p/s
      average                416 p/s  |         378 p/s
          min                  0 p/s  |           0 p/s
--------------------------------------+------------------
  time                  5.57 minutes

Редактировать 2 - Чем больше вкладок вы открываете, тем хуже

Я был немного преждевременен с моей версией ядра 4.12.10 гипотеза. Продолжая расследование, наблюдая прямую трансляцию Flashplayer в Chrome с 6 открытыми вкладками, соотношение tx/rx стало намного хуже. Я должен предположить, что Flashplayer каким-то образом собирает и передает данные для других вкладок, кроме своей.

Прямая трансляция Chrome с 26 -минутным Flashplayer с 5 открытыми вкладками:

rick@dell:~$ vnstat -l
Monitoring eth0...    (press CTRL-C to stop)

   rx:        1 kbit/s     1 p/s          tx:        1 kbit/s     1 p/s^C


 eth0  /  traffic statistics

                           rx         |       tx
--------------------------------------+------------------
  bytes                   718.79 MiB  |        1.13 GiB
--------------------------------------+------------------
          max           30.10 Mbit/s  |    12.72 Mbit/s
      average            3.73 Mbit/s  |     6.00 Mbit/s
          min               0 kbit/s  |        0 kbit/s
--------------------------------------+------------------
  packets                    1100634  |         1396530
--------------------------------------+------------------
          max               2616 p/s  |        1774 p/s
      average                696 p/s  |         883 p/s
          min                  0 p/s  |           0 p/s
--------------------------------------+------------------
  time                 26.33 minutes

Как и следовало ожидать, при 1080p общая загрузка составляет 718,79 МБ. Что шокирует, так это загруженный 1.13 ГиБ! Это дает отношение tx/rx 157%. Это подводит меня к выводу результатов моих тестов за 2 дня назад, и на этих снимках экрана были открыты мои обычные 10 вкладок Chrome и 3 вкладки Firefox.

Следующий тест будет состоять из 7 вкладок, которые будут заниматься обычным серфингом / задавать вопросы и ответы в Ubuntu в течение 1/2 часа и получать только итоги, не относящиеся к Flashplayer.

Редактировать 3 - Использование Conky для мониторинга в режиме реального времени

Сначала открываются результаты теста 7 нажатий на вопрос об Ubuntu (выше):

rick@dell:~$ vnstat -l
Monitoring eth0...    (press CTRL-C to stop)

   rx:        1 kbit/s     1 p/s          tx:        2 kbit/s     3 p/s^C


 eth0  /  traffic statistics

                           rx         |       tx
--------------------------------------+------------------
  bytes                     1.14 MiB  |         454 KiB
--------------------------------------+------------------
          max            2.40 Mbit/s  |      136 kbit/s
      average            9.35 kbit/s  |     3.64 kbit/s
          min               0 kbit/s  |        0 kbit/s
--------------------------------------+------------------
  packets                       3699  |            2776
--------------------------------------+------------------
          max                257 p/s  |         163 p/s
      average                  3 p/s  |           2 p/s
          min                  0 p/s  |           0 p/s
--------------------------------------+------------------
  time                 16.63 minutes

Далее тест с 7 открытыми вкладками, ничего не делающий в течение 1/2 часа на машине:

rick@dell:~$ vnstat -l
Monitoring eth0...    (press CTRL-C to stop)

   rx:        1 kbit/s     1 p/s          tx:        2 kbit/s     2 p/s^C


 eth0  /  traffic statistics

                           rx         |       tx
--------------------------------------+------------------
  bytes                      766 KiB  |         529 KiB
--------------------------------------+------------------
          max             121 kbit/s  |      164 kbit/s
      average            3.33 kbit/s  |     2.30 kbit/s
          min               0 kbit/s  |        0 kbit/s
--------------------------------------+------------------
  packets                       4752  |            3772
--------------------------------------+------------------
          max                256 p/s  |          24 p/s
      average                  2 p/s  |           2 p/s
          min                  0 p/s  |           0 p/s
--------------------------------------+------------------
  time                 30.70 minutes

Таким образом, мы видим, что даже когда на вашей машине ничего не происходит, Chrome может нормально передавать пакеты, но его размер небольшой (529 КиБ или около того).

Conky текст

Я добавил этот простой текст для мониторинга использования сети в реальном времени:

${color1}Network real-time monitoring
${color}Down: ${color green}${downspeed eth0}/s ${color}${goto 220}Up: ${color green}${upspeed eth0}/s
${downspeedgraph eth0 25,190 000000 ff0000} ${alignr}${upspeedgraph eth0
25,190 000000 00ff00}$color
Total: ${color green}${totaldown eth0} $color${alignr}Total: ${color green}${totalup eth0}
${color orange}${voffset 2}${hr 1}

Conky дисплей

Итоги внизу указаны с момента последней загрузки, а не с момента включения conky.

Редактировать 4 - HTML5 загружается не так, как Flashplayer

Я выполнил 27,5 -минутный тест под Kernel 4.12.10 канала прямых новостей youtube.com (с 4-часовым сдвигом) в 1080p:

rick@dell:~$ vnstat -l
Monitoring eth0...    (press CTRL-C to stop)

   rx:       12 kbit/s     4 p/s          tx:        3 kbit/s     2 p/s^C


 eth0  /  traffic statistics

                           rx         |       tx
--------------------------------------+------------------
  bytes                   474.04 MiB  |       19.49 MiB
--------------------------------------+------------------
          max           17.27 Mbit/s  |     2.16 Mbit/s
      average            2.35 Mbit/s  |    96.76 kbit/s
          min               0 kbit/s  |        0 kbit/s
--------------------------------------+------------------
  packets                     346609  |          198883
--------------------------------------+------------------
          max               1481 p/s  |        1047 p/s
      average                210 p/s  |         120 p/s
          min                  0 p/s  |           0 p/s
--------------------------------------+------------------
  time                 27.50 minutes

474,04 МиБ было загружено и 19,49 МиБ было загружено, что дало среднее соотношение tx/rx 4%. Этот тест был выполнен с использованием браузера Chrome, но я ожидаю, что результаты браузера Firefox будут такими же. Поэтому можно предположить, что массовые загрузки данных ограничены Flashplayer, а не HTML5.

Надеемся, что другие пользователи могут проверить, чтобы подтвердить мои выводы и комментарии ниже.

Тем временем я проводил обсуждения с Дагом Смитисом (который разместил другой ответ здесь) в Общем чате Ask Ubuntu по поводу его решения. Используя ответ Дуга, я надеюсь узнать физические IP-адреса, на которые будут отправляться мои данные.


Редактировать 5 - 13 декабря 2017 - Проблема решена Ядро 4.14.4

В последние пару дней проблема ушла сама собой. Вероятно, обновление Flashplayer или обновление ядра:

  • Коэффициент загрузки теперь 8,33 МиБ / 224,78 МиБ = 4%
  • Исправлена ​​ошибка Chrome, длившая ~5 секунд для увеличения экрана
  • Исправлена ​​ошибка Chrome изображения, находящегося ~1 секунда за голосом

Результаты vnstat -l

 enp59s0  /  traffic statistics

                           rx         |       tx
--------------------------------------+------------------
  bytes                   224.78 MiB  |        8.33 MiB
--------------------------------------+------------------
          max           10.26 Mbit/s  |      799 kbit/s
      average            2.48 Mbit/s  |    92.00 kbit/s
          min               2 kbit/s  |        4 kbit/s
--------------------------------------+------------------
  packets                     162124  |           95039
--------------------------------------+------------------
          max                886 p/s  |         408 p/s
      average                218 p/s  |         128 p/s
          min                  1 p/s  |           1 p/s
--------------------------------------+------------------
  time                 12.37 minutes

Примечание: в прошлом месяце я получил новый ноутбук, где проблема сохранялась. Однако в последние пару дней проблема исчезла сама по себе либо из обновления Chrome версии 63.0.3239.84 (официальная сборка) (64-разрядная версия), и / или из-за использования ядра 4.14.4.


Редактировать 6 - Янв 07 2018 - Проблема сохраняется Firefox версии 57.0.4

В последние пару дней у меня были проблемы с использованием Chrome, поэтому я начал использовать Firefox на полную ставку. Я также установил ядро 4.14.12 проверить исправления ядра Meltdown:

  • Коэффициент загрузки теперь 254,76 МиБ / 364,83 МиБ = 70%
  • Возникла ошибка Chrome: ~5 секунд, чтобы развернуть экран

Результаты vnstat -l

 enp59s0  /  traffic statistics

                           rx         |       tx
--------------------------------------+------------------
  bytes                   364.83 MiB  |      254.76 MiB
--------------------------------------+------------------
          max           15.23 Mbit/s  |     9.88 Mbit/s
      average            3.58 Mbit/s  |     2.50 Mbit/s
          min             195 kbit/s  |      100 kbit/s
--------------------------------------+------------------
  packets                     429358  |          364510
--------------------------------------+------------------
          max               1450 p/s  |        1229 p/s
      average                513 p/s  |         436 p/s
          min                147 p/s  |          94 p/s
--------------------------------------+------------------
  time                 13.93 minutes

Итак.... полный круг:(

Другие вопросы по тегам