Как гарантировать, что запросы ввода-вывода вернулись к нормальной частоте?

Как гарантировать, что запросы ввода-вывода вернулись к нормальной частоте?

НаВеб-сервисы AmazonЯ используюt2.small ЕС2например, как VPS, обслуживающий несколько веб-сайтов на стеке LAMP (PHP). Я только что получил счет, который почти в три раза превышает мой обычный счет. Я вижу, что мойИспользование запросов ввода-вывода было необычайно высоким. Я вошел на сервер и заметил, что диск заполнен. Я удалил кучу некритических файлов и журналов, и диск (EBS) теперь заполнен на <60%, но я хотел бы проверить две вещи.

  1. Как узнать, связано ли большое количество запросов ввода-вывода с заполнением диска?
  2. Как узнать, что запросы ввода-вывода все еще исчерпаны?

У меня не было специфического для AWSCloudWatchслужба мониторинга включена, поэтому я, вероятно, не получу ответа на вопрос №1, но любой совет был бы признателен.

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

$ iostat
Linux 3.13.0-45-generic (dysphoria)     2015-10-08      _x86_64_        (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2.74    0.01    0.69   16.83    0.43   79.30

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
xvda            170.08     10039.29        32.52  843300857    2731428
xvdf              0.01         0.02         0.00       1308          0

$ cat /proc/diskstats
   1       0 ram0 0 0 0 0 0 0 0 0 0 0 0
   1       1 ram1 0 0 0 0 0 0 0 0 0 0 0
   1       2 ram2 0 0 0 0 0 0 0 0 0 0 0
   1       3 ram3 0 0 0 0 0 0 0 0 0 0 0
   1       4 ram4 0 0 0 0 0 0 0 0 0 0 0
   1       5 ram5 0 0 0 0 0 0 0 0 0 0 0
   1       6 ram6 0 0 0 0 0 0 0 0 0 0 0
   1       7 ram7 0 0 0 0 0 0 0 0 0 0 0
   1       8 ram8 0 0 0 0 0 0 0 0 0 0 0
   1       9 ram9 0 0 0 0 0 0 0 0 0 0 0
   1      10 ram10 0 0 0 0 0 0 0 0 0 0 0
   1      11 ram11 0 0 0 0 0 0 0 0 0 0 0
   1      12 ram12 0 0 0 0 0 0 0 0 0 0 0
   1      13 ram13 0 0 0 0 0 0 0 0 0 0 0
   1      14 ram14 0 0 0 0 0 0 0 0 0 0 0
   1      15 ram15 0 0 0 0 0 0 0 0 0 0 0
   7       0 loop0 0 0 0 0 0 0 0 0 0 0 0
   7       1 loop1 0 0 0 0 0 0 0 0 0 0 0
   7       2 loop2 0 0 0 0 0 0 0 0 0 0 0
   7       3 loop3 0 0 0 0 0 0 0 0 0 0 0
   7       4 loop4 0 0 0 0 0 0 0 0 0 0 0
   7       5 loop5 0 0 0 0 0 0 0 0 0 0 0
   7       6 loop6 0 0 0 0 0 0 0 0 0 0 0
   7       7 loop7 0 0 0 0 0 0 0 0 0 0 0
 202       0 xvda 14198708 1225 1686588426 26715600 87579 51756 5461696 11290600 0 16654328 38003076
 202       1 xvda1 14198527 1203 1686586802 26715376 87579 51756 5461696 11290600 0 16654236 38002848
 202      80 xvdf 447 6 2616 288 0 0 0 0 0 288 288

$ free -m
             total       used       free     shared    buffers     cached
Mem:          2000       1910         89          6          6       1216
-/+ buffers/cache:        688       1312
Swap:            0          0          0

Хотя приведенная выше информация была получена вскоре после загрузки, iostatотчет показывает начальный TPS в диапазоне 50-80 даже после того, как система проработала несколько часов. Сервер обслуживает около 20 сайтов, только три из которых получают больше нескольких хитов в день. Это порядка нескольких сотен посетителей в день.Сервер и сайты работали в этой конфигурации годами без каких-либо проблем.Лишь недавно объем ввода-вывода начал резко расти, без каких-либо соответствующих изменений в коде, конфигурации сервера или нагрузке на веб-сайт.

Обратите внимание, что этот вопрос изначально был заданОфициальный форум Amazon Web ServicesОднако никто, похоже, не смог помочь там. Возможно, вопрос слишком общий для этого форума.

решение1

На странице руководства iostat содержится важная информация, непонимание которой может привести к неправильному пониманию представленных данных.

Первый отчет, созданный командой iostat, содержит статистику, касающуюся времени с момента загрузки системы. Каждый последующий отчет охватывает время с момента предыдущего отчета. Вся статистика выводится каждый раз при запуске команды iostat.

Итак, ваш простой iostat, представленный выше, сообщает значения, собранные с момента запуска системы.

Более нормальным является запуск iostst с интервалом и отбрасывание первого набора статистики, например

iostat 5

это позволит сообщать соответствующую статистику каждые 5 секунд.

Собрав правильные данные, вы сможете лучше понять ситуацию.


Взгляните нана вершинекоманда. В частности, запуск ее с привилегиями и выбор dвключит статистику ввода-вывода на диске для каждого потока.

Связанный контент