LINUX.ORG.RU
решено ФорумAdmin

Ограничено создание файлов на поток 849файлов/1-ая секунда, далее 3-4

 , ,


1

1

Привет, всем!

сижу в эмуляторе Windows в VirtualBox. Пишу в C#

первую секунду создаю и закрываю через C# ~849 файлов . – создаются равномерно 84 файла/100мс со второй секунды создаю по 4 файла в секунду.

а хотелось бы 20000 файлов каждую секунду создавать, потому что SSD.

подскажите пожалуйста, какие настройки мне следует изменить в Linux(комманда)? Что на это может влиять? Какой вывод можно сделать, что бы найти причины этого события?

void Main() {

{
    Parallel.For(
                0,
                80000,
                i =>
                {
                    FileStream fs = File.Open(@"C:\temp\"+i.ToString(),FileMode.OpenOrCreate);
                    fs.Close();
                }
            );
}

} Main();

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

пробовал изменять ulimit, без перезагрузки, она ему я так понимаю не требуется.

причина может быть в linux,virtualbox,C#

===========================================

Решение: 03/02/2024 Еще раз спасибо, anonymus.

Вариант с обратите внимание на настройки VirtualBox оказался верным.

Я удалил его как <Сетевой диск> и прикрепил его как <Виртуальный диск>. Теперь происходит по 10к+ открытий в секунду как и должно быть.

тема медленности работы виртуальной машины с дисками/сетевыми дисками и идеи подключить как виртуальный диск(с шагами, на всякий случай) раскрыта здесь https://hackware.ru/?p=3773#616



Последнее исправление: rowcol (всего исправлений: 6)
Ответ на: комментарий от cobold

Привет, Я предположил, что это ulimit, или другая настройка. Какая не знаю.

У меня скатывается количество открываемых файлов от 800, до 4 в секунду. В голом Windows у меня открывается и закрывается 20000 файлов в секунду.

Это какие то ограничения Базовой операционной системы я думаю. Вот при чем здесь Линукс и как его настроить, я пытаюсь понять.

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

Давай заново. VirtualBox это гипервизор, он позволяет запускать виртуальные машины. Про какой эмулятор windows идёт речь и причем здесь linux?

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

Вот при чем здесь Линукс и как его настроить, я пытаюсь понять.

Ни при чём и никак. Обращайся в поддержку VirtualBox. ulimit — это для нативного кода, ни про какие файлы в виртуализированной винде оно знать не может.

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

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

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

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

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

если кто то знает как мне ее решить

Не использовать виртуализацию, в особенности VirtualBox? Вообще не очень понятно, что тебя удивляет в этой ситуации. Это не бесплатная технология, она имеет накладные расходы. Собственно, какую проблему ты пытаешься решить?

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

~ в секунду. Может причина в том, что это не бесплатная технология?

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

Тогда проще всего смириться и как-то учитывать потери производительности от виртуализации. Если хочется как-то ускорить свою загадочную задачу, то сначала попробовать VirtIO на KVM, а если железо позволяет — проброс PCIE. Это, наверное, всё, что тут а принципе можно сказать.

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

Я все таки рискну предположить, что «пользователь» VirtualBox находится в группе, на которую моё изменение ulimit для основного текущего пользователя не привело к изменению характеристик «пользователь» VirtualBox.

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

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

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

Все может быть, но т.к. никто не знает что ты там у себя и как запускаешь, то врядли кто-то сможет помочь. Если только появится какой-нибудь телепат-стажёр

cobold ★★★★★
()

SSD только на короткой дистанции быстрый, а дальше он работает на скоростях обычного средненького HDD, чаще даже хуже, так как фейковая скорость в виде буфера заканчивается. Вот и всё.

Чтобы была скорость, нужно, подождать сделав паузу лол. Причина в железе, рассматривай самую низкую скорость работы на SSD как её реальную скорость работы. Ну или работай с самымми тяжёлыми файлами в начале и в надежде на то что в тот момент кеш ссдюка не будет забит другим приложением ЛОЛ.

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

VirtIO, PCI passthrough. Непонятно, почему тормозной VBox должен тебе что-то, ещё и в конкретных цифрах.

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

Затем, что иначе придется все это писать в VS Code в Linux. Просто так настроено.

Что «это»? Что «настроено»? Тебя кто-то заставляет что-то делать именно в виндо-виртуалбоксе установленном на линукс-хосте?

firkax ★★★★★
()

Вас не смущает что у коробки image это файлик который возможно/скорее-всего должен расти?

anc ★★★★★
()

на данный момент я решил сосредоточиться на идее о том, что проблема в настройках виртуальной машины, а не linux.

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

потыкал настройки в GUI, типа ускорить то, ускорить сё. Сейчас переношу образ с жесткого диска. Может и поможет. Но каталог в котором происходит создание файлов не на жестком диске. Потом еще что-то попробую. Параллельно исследую документацию VBoxManage.

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

Так же нашел такую тему, касательно другой виртуальной машины, что

Потом он создал новую виртуальную машину и поставил устанавливаться Windows, а ESXTOP показывал скорость записи 10-20 МБ/с, в то время как она должна была быть на уровне 400-500 МБ/с.

https://vm-guru.com/news/vmware-esxi-65-storage-performance-problems

и вообщем в этом случае у человека была проблема в драйверах.

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

кхм. esxi работает на голом железе, у него свои драйверы

virtualbox обычное приложение

router ★★★★★
()

ну посмотри iostat -x 1

когда увидишь, что диск не нагружен, смотри в сторону видны

router ★★★★★
()

а хотелось бы 20000 файлов каждую секунду создавать, потому что SSD.

Не хотелось.

Parallel

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

crutch_master ★★★★★
()

сижу в эмуляторе Windows в VirtualBox. Пишу в C#

Пиши на линуксе в vscode. УМВР.

возможно это ограничения .Net 2.1,

Переходи на Net 6+, неткорь перебрендирована уже, 2.1 всё :)

а хотелось бы 20000 файлов каждую секунду создавать, потому что SSD.

чтобы что?

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

Сейчас переношу образ с жесткого диска. Может и поможет. Но каталог в котором происходит создание файлов не на жестком диске.

А на чем тогда? Прямая запись на святой дух?

t184256 ★★★★★
()

По-моему это троллинг тупостью и отвечать ему бесполезно.

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

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

anonymous
()

Выкинуть линух и поставить винду, а линух крутить в wsl. Все нормальные люди так делают.

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

Но каталог в котором происходит создание файлов не на жестком диске.

А на чем тогда? Прямая запись на святой дух?

Ну например /tmp в раме может быть. :)

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

Ну если вы только в этом смысле...

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

Еще раз спасибо.

Вариант с обратите внимание на настройки VirtualBox оказался верным.

Я удалил его как <Сетевой диск> и прикрепил его как <Виртуальный диск>. Теперь происходит по 10к+ открытий в секунду как и должно быть.

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

тема медленности работы виртуальной машины с дисками и идеи подключить как виртуальный диск(с шагами, на всякий случай) раскрыта здесь https://hackware.ru/?p=3773#616

rowcol
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.