LINUX.ORG.RU

как доподлинно выяснить что дисковые операции происходят в ram а не на ssd

 , , , ,


2

1

Я купил ноут hp 4 1257er и ssd plextor 256 Gb для него. Скрестил. Установил xubuntu 13.04 и занялся оптимизированием системы под работу на ssd - смонтировал все каталоги для временной работы в tmpfs. Выжимка из fstab:

none on /sys/fs/cgroup type tmpfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
none on /tmp type tmpfs (rw,nosuid,nodev,size=6G)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
none on /var/cache/apt/archives type tmpfs (rw,noexec,nosuid,nodev,mode=0755)
none on /var/tmp type tmpfs (rw,noexec,nosuid,nodev,mode=0755)
none on /home/remort/.cache type tmpfs (rw,nosuid,nodev,size=2G)
Я использую chromium , его кеш я тоже смонтировал в tmpfs , после этого начал мониторить работу системы с помощью тулзы iotop. Ниже видно что iotop рапортует о множественной записи cromium'ом своих данных на диск. В iotop я выбрал вкладку WRITE для мониторинга операций записи на диск :
4874 be/4 remort       10.48 M     13.35 M  0.00 %  0.00 % chromium-browser
  553 be/3 root          0.00 B      3.30 M  0.00 %  0.08 % [jbd2/sda1-8]
 4877 be/4 remort        2.21 M      2.81 M  0.00 %  0.00 % chromium-browser
 4875 be/4 remort        0.00 B   1848.00 K  0.00 %  0.00 % chromium-browser
 4872 be/4 remort        0.00 B   1524.00 K  0.00 %  0.00 % chromium-browser
 4860 be/4 remort        0.00 B   1508.00 K  0.00 %  0.00 % chromium-browser
 4862 be/4 remort        4.00 K   1108.00 K  0.00 %  0.00 % chromium-browser
  271 be/3 root          0.00 B    924.00 K  0.00 %  0.04 % [jbd2/sdb1-8]
 4977 be/4 remort        0.00 B    388.00 K  0.00 %  0.00 % chromium-browser
 1455 be/4 root          0.00 B    144.00 K  0.00 %  0.00 % upowerd
  675 be/4 syslog        0.00 B     44.00 K  0.00 %  0.00 % rsyslogd -c5
Так же интересно взглянуть на ahci, xhci прерывания из
/proc/interrupts
после нескольких минут использования chromium на свежезагруженной системе:
40:          1         15       5413      52429   PCI-MSI-edge      xhci_hcd
41:       6496       1825       8640      11670   PCI-MSI-edge      ahci
Так же я наблюдал за лампочкой hdd на ноуте. Она иногда помаргивает при браузинге в хроме даже когда я и ~/.config/chromium смонтировал в tmpfs. Я конечно понимаю что не одним же святым духом питаться но именно при открытии новых сайтов помаргивает.

Я конечно понимаю что без записи на диск никак , но если syslog явно пишет на диск, то хромиум при таком fstab большинство операций должен делать в ОЗУ. Почему растут прерывания для *hci когда я активно бровзаю интернет? Я ведь правильно понимаю что *hci это прерывания дискового контроллера?

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

Вообще приводя в пример chromium я говорю вобщем о ситуации с tmpfs+ssd и как увериться и какие тулзы использовать чтобы смотреть куда у меня кто пишет в системе?

Я конечно делал тесты с dd в /tmp , генерииуя файл на несколько Гб и видя что ОЗУ стала занята на это кол-во Гб. Но делая sync после dd в каталоге который смонтирован в ОЗУ у меня опять моргает лампочка на ноуте (метаданные в журнал чтоли пишет о созданном файле).

Один умный чел посоветовал использовать nmon , но она мне ничего нового не дала, зато я узнал про ОС AIX ))

Я хочу видеть своими глазами а не вычислять эмпирически кто на какой девайс у меня пишет (!). А то как под оффтопиком - ничего не вижу.

Так же я после старта системы замерял df -h ~/.cache/chromium и df -h ~/.onfig/chromium до запуска (0 байт) и после нескольких минут браузинга (десятки мегабайт). То есть пишется все куда надо, но это память или ssd ? Так как прерывания растут, iotop показывает дисковые операции, примерно такое же кол-во записанных мегабайт.



Последнее исправление: remort (всего исправлений: 2)

не знаю, как там хромиум, но огнелис, запущенный из консоли очень дофига чего на stdout/stderr вываливает. в случае, если он запускается из иксов, весь этот мусор сыпется в ~/.xsession-errors (ну или какой там у тебя лог ведет дисплей менеджер)

ananas ★★★★★
()
Ответ на: комментарий от ii343hbka

да так видно какие файлы конкретно юзает на read/write и дофига еще чего. в основном все в .cache и .config в хомяке, как и полагается. то есть ничего мимо tmpfs почти пишется. вопрос в том что iotop считает что писанина в эти каталоги является дисковыми операциями. а на диск как бы ничего же при этом не должно писаться. прерывания еще.

remort
() автор топика
Ответ на: комментарий от ananas

да, немного пописывает он в ~/.xsession-errors и еще в пару мест, еще читает файлы из ~/.mozilla )) и много еще чего забавного. с xsession-errors разберусь.

remort
() автор топика
Ответ на: комментарий от ZuBB

к себе на remort.net наверное запотсю. вот тут ответил уже на сопутствующий вопрос: http://askubuntu.com/questions/177058/xsession-errors-file-is-huge-how-can-i-... самый последний ответ.

пока что я так и не увидел явно что запись идет в tmpfs. нет я вижу конечно что я в папки смонтированные на tmpfs пишу но почему тогда iotop и /proc/interrupts мне дисковые операции показывают?

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

remort
() автор топика

iotop - показывает сколько пишут/читают процессы
iostat - показывает сколько пишется/читается на устройстве

Я хочу видеть..на какой девайс у меня пишет

Примеры:
1) каждые 6 сек показывать в килобайтах сколько пишется/читается со всех дисков:

iostat -k 6
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          23.93    0.04    0.54    9.59    0.00   65.90
...
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              47.17         0.00      2186.67          0      13120
sdb               1.83         0.00        12.00          0         72
sdc               0.00         0.00         0.00          0          0
sdd              24.67       398.67         0.00       2392          0
2) статистика по двум разделам (/var/log и /var/transmission/downloads):
iostat -k 3 /dev/sda7 /dev/mapper/media-torrents 
..
vg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.25    0.08    0.50    0.33    0.00   97.83

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda7              0.00         0.00         0.00          0          0
dm-3             29.00       466.67         0.00       1400          0

DiMoN ★★★
()
Ответ на: комментарий от remort

Запустил с параметром ALL (все девайсы видимые iostat, даже не учавствующие в обмене данными) , так как в /dev на убунте нет прямых девайсов на которые отображаются смонтированные в ОЗУ каталоги.

После нескольких минут браузенья в хроме, для которого я к этому времени смонтировал в ОЗУ не только кеш но и профиль с настройками (с помощью profile sync daemon) наблюдаю такую картину iostat. Тут типа данные накопленные со старта системы. cumulative типа.

root@remort-book:~# iostat ALL
Linux 3.8.0-29-generic (remort-book)    03.09.2013      _i686_  (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3,52    0,02    1,57    0,24    0,00   94,65

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
ram0              0,00         0,00         0,00          0          0
ram1              0,00         0,00         0,00          0          0
ram2              0,00         0,00         0,00          0          0
ram3              0,00         0,00         0,00          0          0
ram4              0,00         0,00         0,00          0          0
ram5              0,00         0,00         0,00          0          0
ram6              0,00         0,00         0,00          0          0
ram7              0,00         0,00         0,00          0          0
ram8              0,00         0,00         0,00          0          0
ram9              0,00         0,00         0,00          0          0
ram10             0,00         0,00         0,00          0          0
ram11             0,00         0,00         0,00          0          0
ram12             0,00         0,00         0,00          0          0
ram13             0,00         0,00         0,00          0          0
ram14             0,00         0,00         0,00          0          0
ram15             0,00         0,00         0,00          0          0
loop0             0,00         0,00         0,00          0          0
loop1             0,00         0,00         0,00          0          0
loop2             0,00         0,00         0,00          0          0
loop3             0,00         0,00         0,00          0          0
loop4             0,00         0,00         0,00          0          0
loop5             0,00         0,00         0,00          0          0
loop6             0,00         0,00         0,00          0          0
loop7             0,00         0,00         0,00          0          0
sda              31,78       562,38        31,76      81961       4628
sdb              73,32      1384,72        25,94     201809       3780

То есть никуда кроме hdd вроде не пишется и не читается, но с другой стороны записи как мало, заметьте, потому что все пишется в ОЗУ, учет которой никто не может отследить походу. Ни iostat ни iotop. sda это хомяк на ssd plextor, sdb это корень на встроенной mSATS ssd в ноут.

remort
() автор топика
Ответ на: комментарий от remort

я правильно понял что после загрузки ноута был запущен только браузер?

как думаешь что писалось в sd{a,b}?

а что так много считано по sdb?

ZuBB ★★★★★
()
Ответ на: комментарий от ZuBB

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

beresk_let ★★★★★
()

ОП поехавший, лучше бы трим включил

anonymous
()
Ответ на: комментарий от ZuBB

Да, запустил систему, открыл chromium и полазал по сайтам. С корня (sdb) загружалась система, с хомяка (sda) конфиги хромиума, данные для граф. сеанса как минимум, профиль там, все остальное. Там у меня еще пиджин запускается, ну и куча всяких служб убунтовских. Так что отдельно проверять запись/чтение в tmpfs-ные каталоги не нужно, они успели поюзаться, это точно.

Чел который посоветовал iostat писал что у него в /dev/ мапятся маунтпоинты которые смонтированы в tmpfs, я у себя в /dev ничего такого не нашел кроме ramX устройств которые какие то фэйковые и не используются.

Чего то в бубунте не хватает для мониторинга tmpfs-ных разделов/маунтпоинтов. На бубунтуфоруме и askubuntu просто ничего не отвечают по этому же вопросу - ватный контингент там. Интересно что за ОС у DiMoN'а ?

Анонимус, не мешай.

remort
() автор топика
Ответ на: комментарий от remort

Зря ты так с анонимусом. На этом техническом ресурсе только он помнит про strace как средство решения подобных проблем.

Гадатели на потрохах, выше по треду, тебе не помогут.

anonymous
()
Ответ на: комментарий от anonymous

А что мне покажет strace ? то что происходит открытие (open) или запись (write) файла в каталоге .cache/chromium/trololo ? Я это и lsof вижу. Я хочу увидеть что оно при этом реально в ОЗУ пишется. Да, у меня проблемы, я параноик, ну и вообще, где мониторинг то нормальный в бубунте.

remort
() автор топика
Ответ на: комментарий от beresk_let

офтоп: интересно а считать данных на 200мб при загрузке системы это много или мало? мне кажется что многовато..

ZuBB ★★★★★
()
Ответ на: комментарий от remort

не уверен но у него вроде как рейд или/и лвм.

Интересно что за ОС у DiMoN'а ?

спросить можно. DiMoN, давай делись тайными знаниями

ZuBB ★★★★★
()
Ответ на: комментарий от ZuBB

А по-моему, как раз нормально. Если там при логине запускаются иксы и DE не самое аскетичное, то даже мало получается.

beresk_let ★★★★★
()
Ответ на: комментарий от ZuBB

ну там например ядро, кеш и конфиг хромиума по 15 мб каждый, либы, бинарники, всякие шрифты, кеши используемых фалов (zeitgeist там всякий и пре-поиск) и прочее для иксов... это вам не самособранная gentoo без лишнего обвеса. вы только посмотрите что systemd грузит (содержимое /etc/init/). да, так то было бы интересно посмотреть что это конкретно за 200 Мб (и как их сократить )) ).

Вот поэтому когда я на старом домашнем компе с xubuntu установки всего полугодовой давности включаю его, то он долго грузится и дрищет винтом, и еще некоторое время после прогрузки рабочего стола. как на оффтопике прямо. а с ssd все быстро. современный линукс, он такой, уже не торт. кто то же писал что xubuntu это не «легковесная ОС» , это вам в убунту просто вместо тяжелого гнома подсунули xfce полегче, а вся навороченная убунта осталась. я полгода назад чуть генту в панике не поставил на старый домашний комп. не осталось больше легких дистров из числа серьезных. да, у меня проблемы, я знаю.

remort
() автор топика
Ответ на: комментарий от ZuBB

в арч системд же впилили и он тоже разбух. в генту тоже собираются.

давайте по теме, смонтируйте себе в tmpfs кэш cromium'а и докажите мне что данные пишутся в ОЗУ.

remort
() автор топика
Ответ на: комментарий от remort

смонтируйте себе в tmpfs кэш cromium'а и докажите мне что данные пишутся в ОЗУ.

Может тебе еще и бочку сделать?

anonymous
()
Ответ на: комментарий от remort

Я это и lsof вижу.

Nope. Если надо узнать почему дергается диск — это одна задача. А если удостовериться, что tmpfs юзает исключительно память — другая.

Последнюю могут разрешить только люди в белых халатах, такие дела.

anonymous
()
Ответ на: комментарий от anonymous

Дак люди в белых халатах или strace ?

Лучше сделай вдоль.

remort
() автор топика
Ответ на: комментарий от remort

в генту тоже собираются.

В генте он уже давно опционально и пока таковым и останется

Pinkbyte ★★★★★
()
Ответ на: комментарий от remort

Интересно что за ОС у DiMoN'а

$ cat /etc/gentoo-release && uname -a
Gentoo Base System release 2.1
Linux xeon 3.10.1-gentoo-server #2 SMP PREEMPT Mon Aug 19 06:42:29 EEST 2013 x86_64 Intel(R) Xeon(R) CPU X3440 @ 2.53GHz GenuineIntel GNU/Linux

systemd - опционально сделали, и так и оставят. Хочеш ставь, не хочешь - не ставь.

в /dev/ мапятся маунтпоинты которые смонтированы в tmpfs

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

Запустите iostat -k 3 /dev/sda /dev/sdb, открывайте chromium и прочие программы и смотрите, сколько пишется на ssd. Если запись есть, и считаете что мого - тогда запускайте iotop и смотрите какие процессы пишут на ssd.

[offtop]
Небольшие расчеты: для примера возмём SSD Kingston HyperX 128Gb, судя по тех.описанию, выдерживает как минимум 1000 циклов перезаписи.
Это получается, что если каждые сутки писать на этот SSD по 128 Гб, то его ресурса должно хватить почти на 3 года.
(При непрерывной записи, на заявленной скорости в 500Мб/сек, ресурса хватит на 128000*100000/500/3600=71 час)
Новые SSD от Intel и OCZ должны выдерживать до 100 тысяч циклов записи. Они помрут скорее от перепада напряжения или неудачного обновления прошивки, чем от исчерпания ресурса.
(При непрерывной записи, на заявленной скорости в 500Мб/сек ресурса хватит на 128000*100000/500/3600=7111 час или 296 суток)
p.s. SMART с моего SSD на домашнем игровом компе, 2 года стоит с седьмыми окнами, swap и hibernate на ssd, а так-же Lineage2 и Diablo3[offtop]

DiMoN ★★★
()
Последнее исправление: DiMoN (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.