LINUX.ORG.RU

Прерывистая работа системы

 


0

2

Дано: Ubuntu 20.04, Ryzen-5 2600, Biostar B450MH c свежим БИОСом.
запущено 10 вычислительных задач, которые время от времени
пишут на SSD диск немного информации, на диске достаточно
свободного места. Своп есть, но не используется - памяти хватает.

Такие задачи считались до некоторого момента вполне равномерно, т.е. была постоянная загрузка десяти CPU на уровне близком к 100%. Сейчас примерно 10 секунд 100% и столько же в состоянии ожидания данных (D в top’е). Теперь на задачу тратиться реального времени больше в два раза. Если учитывать, что задаче нужно около 10 часов процессорного времени, то это «не есть карашо».

Вопрос: что сиё поведение системы означает?

Ответ на: комментарий от symon2014

Аргументы, логика события есть?
Какая-то мутная утилита, не установленная в системе. Ни Яндекс, ни Гугле не находят примеров использования. Работает она с монтированным диском или …? Явно без бэкапа ВСЕГО диска к ней прикасаться стремно.

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

Отмонтировать ничего не надо. Бэкапить тоже. Запускать её желательно по крону каждый день. Или, если используется systemd, включить fstrim.service и fstrim.timer, если они по каким-то причинам не активны. Или монтировать ФС с соответствующей опцией, чтобы discard работал.

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

https://wiki.archlinux.org/title/Solid_state_drive

Там же есть русский перевод.

Просто ssd уже 15 лет в быту/проде, это был очень странный вопрос про trim

Dimez ★★★★★
()
Последнее исправление: Dimez (всего исправлений: 2)
Ответ на: комментарий от valentin630

пишут не чаще раза в неделю

В целом это зависит от того, насколько активно используется SSD, а если точнее, насколько много и как часто с него удаляется.

А что посоветуете, насчет, опций?

Посоветую сильно не заморачиваться. Опять же, если используется systemd, рекомендую просто включить соответствующий сервис/таймер.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)

я бы глянул с помощью io монитора что делается в эти 10 секунд простоя. Если нагрузки на процессор нет что-то же происходит. Что хоть за задачи, может тупо многозадачность криво реализована? Я на жабе встречал иногда такие паузы

monkdt
()
Последнее исправление: monkdt (всего исправлений: 1)
Ответ на: комментарий от Dimez
root@bel02:/home/xxx# smartctl -i -a /dev/sdb
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.15.0-73-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     128GB SSD
Serial Number:    J33065R002649
LU WWN Device Id: 5 000000 000000000
Firmware Version: H190117H
User Capacity:    128 035 676 160 bytes [128 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Form Factor:      2.5 inches
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ACS-2 (minor revision not indicated)
SATA Version is:  SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Tue Jun 13 12:24:26 2023 MSK
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x02)	Offline data collection activity
					was completed without error.
					Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0)	The previous self-test routine completed
					without error or no self-test has ever 
					been run.
Total time to complete Offline 
data collection: 		(   33) seconds.
Offline data collection
capabilities: 			 (0x7b) SMART execute Offline immediate.
					Auto Offline data collection on/off support.
					Suspend Offline collection upon new
					command.
					Offline surface scan supported.
					Self-test supported.
					Conveyance Self-test supported.
					Selective Self-test supported.
SMART capabilities:            (0x0003)	Saves SMART data before entering
					power-saving mode.
					Supports SMART auto save timer.
Error logging capability:        (0x01)	Error logging supported.
					General Purpose Logging supported.
Short self-test routine 
recommended polling time: 	 (   2) minutes.
Extended self-test routine
recommended polling time: 	 (   2) minutes.
Conveyance self-test routine
recommended polling time: 	 (   2) minutes.
SCT capabilities: 	       (0x0031)	SCT Status supported.
					SCT Feature Control supported.
					SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0013   100   100   050    Pre-fail  Always       -       0
  9 Power_On_Hours          0x0012   100   100   000    Old_age   Always       -       15717
 12 Power_Cycle_Count       0x0012   100   100   000    Old_age   Always       -       1371
167 Unknown_Attribute       0x0022   100   100   000    Old_age   Always       -       0
168 Unknown_Attribute       0x0012   100   100   000    Old_age   Always       -       0
169 Unknown_Attribute       0x0013   096   096   010    Pre-fail  Always       -       3670030
171 Unknown_Attribute       0x0032   000   000   000    Old_age   Always       -       0
172 Unknown_Attribute       0x0032   000   000   000    Old_age   Always       -       0
173 Unknown_Attribute       0x0012   200   200   000    Old_age   Always       -       335032156438
175 Program_Fail_Count_Chip 0x0022   100   100   010    Old_age   Always       -       0
177 Wear_Leveling_Count     0x0012   100   100   000    Old_age   Always       -       0
180 Unused_Rsvd_Blk_Cnt_Tot 0x0033   100   100   000    Pre-fail  Always       -       1644
187 Reported_Uncorrect      0x0032   100   000   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0012   100   100   000    Old_age   Always       -       241
194 Temperature_Celsius     0x0022   048   048   000    Old_age   Always       -       48 (Min/Max 48/48)
199 UDMA_CRC_Error_Count    0x0012   100   100   000    Old_age   Always       -       0
206 Unknown_SSD_Attribute   0x0032   200   200   000    Old_age   Always       -       78
207 Unknown_SSD_Attribute   0x0032   200   200   000    Old_age   Always       -       377
208 Unknown_SSD_Attribute   0x0032   200   200   000    Old_age   Always       -       278
209 Unknown_SSD_Attribute   0x0032   200   200   000    Old_age   Always       -       1903
210 Unknown_Attribute       0x0032   200   200   000    Old_age   Always       -       2220
211 Unknown_Attribute       0x0032   200   200   000    Old_age   Always       -       2004
231 Temperature_Celsius     0x0023   082   082   005    Pre-fail  Always       -       18
241 Total_LBAs_Written      0x0032   100   100   000    Old_age   Always       -       21663
242 Total_LBAs_Read         0x0032   100   100   000    Old_age   Always       -       16305
245 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
valentin630
() автор топика
Ответ на: комментарий от valentin630

Device Model: 128GB SSD

Какой-то китайский подвал вместо ssd. Может быть всё, что угодно.

P.S. Или это SmartBuy так обленился?

Dimez ★★★★★
()
Последнее исправление: Dimez (всего исправлений: 1)
Ответ на: комментарий от Dimez

Какой-то китайский подвал вместо ssd. Может быть всё, что угодно.

  • д-е-м-а-г-о-г-и-я,
    Особенно понравилось «всё, что угодно».

Вы можете привести хоть один сценарий, объясняющий происходящее, как может код ждать устройства 10 секунд?!
Заранее спасибо.

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

я бы глянул с помощью io монитора что делается в эти 10 секунд простоя

Я никогда не пользовался «io мониторами». Нашел iostat, оно ВСЕ время (простой и работа) выдает одно и тоже с точностью до 5-го знака:

root@bel02:/home/ххх# iostat -d -t|grep sdb sdb 24,53 76,94 14042,52 0,00 6291763 1148290999 0

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

Нашел iostat,

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

https://ibb.co/1QbzHRL

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

Спасибо всем за помощь, действительно, fstrim помог сократить время простоя с 10 до <= секундe.

Похоже, «китайский подвал» тут ни при чем, но хотелось бы понять мезанизм задержки десятисекундной при тактовой частоте в 3600GhZ?

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

Вы можете привести хоть один сценарий, объясняющий происходящее, как может код ждать устройства 10 секунд?!

  1. Самая дешманская выработанная память (какая-нибудь QLC YMTC) в подвальном SSD, контроллер судорожно устраивает усушку/утруску ячеек (wear leveling), ибо dram кэша нет, а SLC кэш работает неэффективно из-за старой фирмвари.

  2. SSD заполнен на 99% места, запись копеечных данных порождает большую возню под капотом SSD, ибо большой Write amplification factor (WAF).

  3. Да просто SSD со старой фирмварью с багами, для которого подвал никогда не выпускает обновлений.

Это прям самое простое. Продолжать?

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

нет fstrim сервиса

это я лоханулся: в поисковик перенес мышкой, а у себя искал наслух: «fstream».

Забавная здесь ситуация: правильно намекнули сразу, но сути происшедшего никто не объяснил - похоже, знают сисадмины на какую кнопку нажимать, но почему на нее надо нажимать не понимают.

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

похоже, знают сисадмины на какую кнопку нажимать, но почему на нее надо нажимать не понимают.

Это откуда такая логика?

Люди не разжёвывают на форумах простую информацию по 2м причинам:

  1. У людей нет столько свободного времени, чтобы рассказывать давно известную информацию (которой уже ~10 лет и её все 10 лет муссируют в соответствующих сообществах, и которая уже перешла для них, утрируя, в разряд аксиом). Ну разве что у @Vsevolod-linuxoid есть, но это мегатерпеливый уникальный предельно бронебойный форумчанин, да и то иногда срывается.

  2. Люди не любят разжёвывать информацию, раз уж тебе помогают, то будь добр тоже в гугле поищи ответную часть. Это основы любого социума (ты мне <=> я тебе)

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

Ну по ссылке, которую тебе давали (на арчевики) написано же, по какой причине. Или ты совсем не понимаешь, как работают SSD, и надо прям с основ?

Если очень вкратце, то на SSD нельзя «перезаписать» данные в ячейке. Можно «записать» или «стереть». При этом операция «стирания» зело медленная (физику процесса сам нагуглишь, если интересно). При удалении файла из ФС ячейки помечаются свободными, но данные из них, естественно, не «стираются» (иначе удаление файлов было бы медленным). fstrim говорит контроллеру SSD, что данные в этих «пустых» ячейках надо бы «стереть». Происходит это фоном и заранее, не при удалении, но и не перед записью. Если этого не делать, то ячейки будут «заняты», и при каждой записи в них будет происходить сначала «стирание» и только потом «запись», что очень медленно. На пальцах как-то так.

Но вообще это легко гуглится, когда показали, в какую сторону копать. Никакой rocket science тут нет.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от monkdt

В ubuntu таймер fstrim раз в неделю:

# systemctl status fstrim.timer 
● fstrim.timer - Discard unused blocks once a week
     Loaded: loaded (/lib/systemd/system/fstrim.timer; enabled; vendor preset: enabled)
     Active: active (waiting) since Tue 2023-06-13 14:15:11 MSK; 3h 30min ago
    Trigger: Mon 2023-06-19 00:00:00 MSK; 5 days left
   Triggers: ● fstrim.service
       Docs: man:fstrim

Jun 13 14:15:11 ${HOSTNAME} systemd[1]: Started Discard unused blocks once a week.

Отсюда 2 варианта, либо у него ssd не в fstab (потому-что ExecStart=/sbin/fstrim –fstab –verbose –quiet), либо неделя - это слишком много.

Dimez ★★★★★
()
Последнее исправление: Dimez (всего исправлений: 2)
Ответ на: комментарий от monkdt

Другой вопрос сколько же он записал что началась деградация до того как запустился fstrim? Что это за задачи такие?

Ты smart выше посмотри, ssd на 128Gb, запилить при должном умении 128Gb за неделю - ну очень просто :) Во-вторых, ты не заметил второй вариант. fstrim TRIM’ит только те ssd, которые в /etc/fstab.

Dimez ★★★★★
()
Последнее исправление: Dimez (всего исправлений: 1)
Ответ на: комментарий от Dimez

Это прям самое простое. Продолжать?

1.не 99%, а 50%

2.Цифр я так и не увидел на шкале времени, рассуждения чисто качественные с не подтвержденными ничем предположениями.

3.Если нет времени, то зачем, вообще, писать - пощекотать свое эго, показать превосходство сисадмина над юзером?

4.Поменьше, пожалуйста апломба, больше человечности.

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

Ну по ссылке, которую тебе давали (на арчевики) написано же, по какой причине.

Приходит бабушка ко врачу, тот что-то пишет, не поднимая головы: «ФИО?».

Б. Что касатик?

В. ФИО, старая!

Б. Не понимаю, я…

В. Фамилия, имя, отчество твое.

Б. ***

В. Ты, что сдурела?!

Б. Харитонова я, Ульяна Яковлевна

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

Слушай, ты пришёл за помощью, тебе помогли. Теперь какие-то предъявы кидаешь: то цифр нет, то «зачем вообще писать» (ответ — чтобы помочь решить проблем, очевидно), то человечности какой-то… Ты не в платной техподдержке.

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

не 99%, а 50%

Ты только что это написал, ранее этого не было, кроме пространного «места достаточно» (к слову, о цифрах, ага)

Цифр я так и не увидел на шкале времени,

Ты предлагаешь мне метнуться в магазин, купить ssd такой же как у тебя, чтобы были точные цифры? За этим в Job.

рассуждения чисто качественные с не подтвержденными ничем предположениями.

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

Поменьше, пожалуйста апломба, больше человечности.

Никакого апломба. Ты пришёл за помощью, тебе помогают, однако ты начинаешь вести себя неприятно в области «похоже, знают сисадмины на какую кнопку нажимать, но почему на нее надо нажимать не понимают». Да, есть и такие, разумеется, но тут ПЕРВЫЙ же форумчанин тебе подсказал абсолютно верное направление. Наверное, он хоть что-то да знает, раз без запроса дополнительной технической информации попал сразу в правильный ответ?

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

1.Воспитанный РУССКИЙ человек НИКОГДА не будет тыкать незнакомому человеку, тем более старшему. 2.Я проработал на Западе и за океаном четверть века, имея рабочим языком английский, но от этого не стал англосаксом.

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

Слушай, ты

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

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

мне 87
«не верю»(с), сочувствую, что вас тоже плохо воспитали. У меня сын 43 года, рос безотцовщеной в 90х (я на заробатках был Там). Что такое совесть плохо понимает, но смог стать настояшим миллионером, Вы тоже новый русский, поэтому всякие «приличия» это не Ваше?

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

Проверь с отключенными виртуальными ядрами.

опять квест. О чем речь, я только пользователь? В биосе для vmware я что-то включал. Но дело в том, что описанный эффект появился скачком после пары лет работы с эти диском. Вопрос сейчас только в том, как такое может продолжаться при 50% загрузке диска, на что уходили 10 секунд?!

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

Воспитанный РУССКИЙ человек НИКОГДА не будет тыкать незнакомому человеку

В рунете общение на «ты» всех со всеми было принято испокон веков. Ну, до очень недавних пор, пока всякий офисный планктон не понабежал везде, со своим уставом в чужой монастырь.

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

Причём тут вообще англосаксы? Там как раз все «выкают», в том числе и со знакомыми. «Thou» из употребления вышло, за исключением религиозных текстов и (совсем редко) нарочито принебрежительного отношения.

Я понимаю, что Вас так воспитали Ваши родители

Как «так»? Соблюдать традиции, принятые в том или ином сообществе и не лезть со своим уставом в чужой монастырь? Нет, конкретно в данном случае (в обращении на «ты») меня так перевоспитало общество, а точнее «рунет».

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

Что вы предполагаете сами?

В том=то и дело, что ничего не делал, только был очередной upgrade к ядру 5*****-73, но я откатывался к предыдущему - не помогло.

Мой более чем полувековой опыт программирования говорит только, что есть место в системе (ядро?), написанное троешниками, потому что, если discard/trim это в ubuntu-20.04 стандартная процедура с ssd, то она должна делаться автоматом и не занимать 10 секунд каждые 10 секунд. Я не понимаю откуда берутся 10 секунд - это огромное время, тем более, объем того, что пишется на диски - единицы килобайт. И все безосновательно валить на китайцев - это уже ИТ-рассизм, тем более я работал вместе с китайцами - они другие, но не глупее нас.

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