<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Mikrotik.moscow [тема: [/file find name=$fileName] Использует 100% ресурсов процессора]</title>
		<link>http://mikrotik.moscow</link>
		<description>Новое в теме [/file find name=$fileName] Использует 100% ресурсов процессора форума RouterOS на сайте Mikrotik.moscow [mikrotik.moscow]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sat, 01 Aug 2026 03:48:32 -0400</pubDate>
		<item>
			<title>[/file find name=$fileName] Использует 100% ресурсов процессора</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/83778-_file-find-name_filename_-ispolzuet-100_-resursov-protsessora/message380036">[/file find name=$fileName] Использует 100% ресурсов процессора</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			В 7.12rc4 упоминалась правка бага, которая была достаточно расплывчатой, но, возможно, связана с «медленным» поиском — хотя это всего лишь предположение: system — исправлена многопоточность процессов (введена в версии 7.9); <noindex><a href="http://forum.mikrotik.com/t/v7-12rc-is-released/170147/1" target="_blank" rel="nofollow" >http://forum.mikrotik.com/t/v7-12rc-is-released/170147/1</a></noindex> <br />
			<i>31.10.2023 02:09:00, Amm0.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/83778-_file-find-name_filename_-ispolzuet-100_-resursov-protsessora/message380036</link>
			<guid>http://mikrotik.moscow/forum/forum57/83778-_file-find-name_filename_-ispolzuet-100_-resursov-protsessora/message380036</guid>
			<pubDate>Tue, 31 Oct 2023 02:09:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>[/file find name=$fileName] Использует 100% ресурсов процессора</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/83778-_file-find-name_filename_-ispolzuet-100_-resursov-protsessora/message380035">[/file find name=$fileName] Использует 100% ресурсов процессора</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Пропустил это, это создаст кучу папок, но да, так действительно проще сделать, чем отслеживать индекс сегмента папки. <br />
			<i>28.10.2023 10:30:00, optio.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/83778-_file-find-name_filename_-ispolzuet-100_-resursov-protsessora/message380035</link>
			<guid>http://mikrotik.moscow/forum/forum57/83778-_file-find-name_filename_-ispolzuet-100_-resursov-protsessora/message380035</guid>
			<pubDate>Sat, 28 Oct 2023 10:30:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>[/file find name=$fileName] Использует 100% ресурсов процессора</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/83778-_file-find-name_filename_-ispolzuet-100_-resursov-protsessora/message380034">[/file find name=$fileName] Использует 100% ресурсов процессора</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Похоже, текст для перевода не был предоставлен. Пожалуйста, пришлите его, и я с радостью выполню перевод. <br />
			<i>28.10.2023 10:23:00, rextended.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/83778-_file-find-name_filename_-ispolzuet-100_-resursov-protsessora/message380034</link>
			<guid>http://mikrotik.moscow/forum/forum57/83778-_file-find-name_filename_-ispolzuet-100_-resursov-protsessora/message380034</guid>
			<pubDate>Sat, 28 Oct 2023 10:23:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>[/file find name=$fileName] Использует 100% ресурсов процессора</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/83778-_file-find-name_filename_-ispolzuet-100_-resursov-protsessora/message380033">[/file find name=$fileName] Использует 100% ресурсов процессора</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Неверно. 2023-10-09** - 13:02:41 - 8580 = 2023-10-09 13:02:41 с отрицательным часовым поясом “-85:80” (3 дня, 14 часов и 20 минут). Правильный формат для миллисекунд — "2023-10-09 T 13:02:41 . 8580 00 **** Z **". Если читать строку напрямую, это неправильное представление правильного формата… (T можно заменить на пробел, но не на “-”, а Z [или часовой пояс] можно опустить). <br />
			<i>28.10.2023 10:05:00, rextended.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/83778-_file-find-name_filename_-ispolzuet-100_-resursov-protsessora/message380033</link>
			<guid>http://mikrotik.moscow/forum/forum57/83778-_file-find-name_filename_-ispolzuet-100_-resursov-protsessora/message380033</guid>
			<pubDate>Sat, 28 Oct 2023 10:05:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>[/file find name=$fileName] Использует 100% ресурсов процессора</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/83778-_file-find-name_filename_-ispolzuet-100_-resursov-protsessora/message380032">[/file find name=$fileName] Использует 100% ресурсов процессора</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Тогда можно попробовать разделить запись файлов по отдельным директориям с индексами директорий 0, 1, 2, 3… Ограничить количество файлов в каждой директории, при достижении лимита создавать новую и писать в неё. Также нужно отслеживать последний индекс и количество файлов в нём, чтобы не считать количество файлов в последней директории при каждой новой записи. <br />
			<i>27.10.2023 12:19:00, optio.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/83778-_file-find-name_filename_-ispolzuet-100_-resursov-protsessora/message380032</link>
			<guid>http://mikrotik.moscow/forum/forum57/83778-_file-find-name_filename_-ispolzuet-100_-resursov-protsessora/message380032</guid>
			<pubDate>Fri, 27 Oct 2023 12:19:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>[/file find name=$fileName] Использует 100% ресурсов процессора</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/83778-_file-find-name_filename_-ispolzuet-100_-resursov-protsessora/message380031">[/file find name=$fileName] Использует 100% ресурсов процессора</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Спасибо, @Amm0. К сожалению, команда ниже прерывается и не обрабатывает блок on-error: &nbsp;<br />:do { /file add name=$fileName contents=$content } on-error={:put "skip"} &nbsp;<br />[*] test/toto0.json размер файла: 3920 байт прервано файл уже существует  <br /><br />@optio да, мы пробовали это решение, и оно лучше, но через какое-то время команда /file add name=$fileName contents=$content начинает работать медленнее. В итоге процесс начинает загружать процессор на 100%. &nbsp;<br /><br />@rextended 2023-10-09-13:02:41-8580.json — это имя файла в формате ISO 8601, можно увидеть миллисекунды в конце имени. Я беру это из эпохи последнего BLE-объявления, завершающего файл, приблизительно 4096 байт. Но иногда получаю ошибку «файл уже существует… процесс прерван». Создание подпапок по годам/месяцам/дням/часам/минутам не помогло. При слишком большом количестве файлов RouterOS просто зависает. &nbsp;<br /><br />Наша команда проанализировала ограничения RouterOS. MQTT-сообщения ограничены 4096 байтами, а файлы имеют ограничение по количеству и переменному размеру (в среде Mikrotik). Проверка существования файла, чтение и запись больших файлов должны быть стандартными задачами для любого скриптового языка. &nbsp;<br /><br />Я знаю, вы скажете, что это возможно. Но мы тут не для того, чтобы "изобретать велосипед" (и тестировать его на каждом шагу). Если это возможно, значит, должно работать «из коробки». &nbsp;<br /><br />Загрузка процессора на 100% для нас опасна, потому что мы теряем часть BLE-объявлений в эфире. &nbsp;<br /><br />Спасибо за ваше время. В этом году мы не будем дальше использовать RouterOS. Ежегодно нам приходится менять около тысячи роутеров для обслуживания, так что, возможно, мы еще вернемся к Mikrotik и его ограничениям (я обязательно проверю). &nbsp;<br /><br />Всего доброго и еще раз спасибо! <br />
			<i>27.10.2023 09:17:00, Phenek.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/83778-_file-find-name_filename_-ispolzuet-100_-resursov-protsessora/message380031</link>
			<guid>http://mikrotik.moscow/forum/forum57/83778-_file-find-name_filename_-ispolzuet-100_-resursov-protsessora/message380031</guid>
			<pubDate>Fri, 27 Oct 2023 09:17:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>[/file find name=$fileName] Использует 100% ресурсов процессора</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/83778-_file-find-name_filename_-ispolzuet-100_-resursov-protsessora/message380030">[/file find name=$fileName] Использует 100% ресурсов процессора</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Привет! Суть такая: я пытаюсь обрабатывать BLE-рекламы в офлайн-режиме. Нужно сохранять JSON-файл размером 4096 байт каждые 1-2 секунды. Потом я отправляю все файлы и удаляю их, когда MQTT-брокер снова подключается. Проблема в команде [/file find name=$fileName]. При большом количестве файлов она жрёт 100% CPU.<br /><br />Вот функция, которая создаёт имя файла с счётчиком в конце, чтобы всегда получать уникальное имя:<br />:global getFileName do={<br /> &nbsp; &nbsp;:local counter 0<br /> &nbsp; &nbsp;:local fileName ("test/toto" . $counter . ".json")<br /> &nbsp; &nbsp;:while ([/file find name=$fileName] != "") do={<br /> &nbsp; &nbsp; &nbsp; &nbsp;:set counter ($counter + 1)<br /> &nbsp; &nbsp; &nbsp; &nbsp;:set fileName ("test/toto" . $counter . ".json")<br /> &nbsp; &nbsp;}<br /> &nbsp; &nbsp;:return $fileName<br />}<br /><br />Отчёт:<br />- Меньше 50 файлов — загрузка CPU от 60% до 100%, ответ быстрый.<br />- Около 100 файлов — 100% CPU, но команда возвращается за ~200 мс.<br />- Более 1000 файлов — 100% CPU, команда начинает отрабатывать только через 3 секунды (а у меня файл надо сохранять каждые 1-2 секунды XD).<br /><br />P.S. Реальное имя файла формируется по дате и времени, но если размер файла превышает 4096 байт, я создаю 2 файла с одинаковым именем, и тогда функция getFileName срабатывает вдвое дольше…<br /><br />Пример: &nbsp;<br />2023-10-09-13:02:41-8580.json &nbsp;<br />2023-10-09-13:02:41-8581.json <br />
			<i>10.10.2023 10:20:00, Phenek.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/83778-_file-find-name_filename_-ispolzuet-100_-resursov-protsessora/message380030</link>
			<guid>http://mikrotik.moscow/forum/forum57/83778-_file-find-name_filename_-ispolzuet-100_-resursov-protsessora/message380030</guid>
			<pubDate>Tue, 10 Oct 2023 10:20:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
	</channel>
</rss>
