Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Linux (Ubuntu, Debian, Red Hat, CentOS, Mint)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2024, 15:16   #1
Izhic
Форумчанин
 
Аватар для Izhic
 
Регистрация: 08.10.2008
Сообщений: 668
По умолчанию Ограничено создание файлов на поток 849файлов/1-ая секунда, далее 3-4 файла в секунду(сижу в VirtualBOX эмуляторе Windows, C# 2.1)

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



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

а хотелось бы 20000 файлов каждую секунду создавать, потому что SSD.
Как я понимаю, Ограничено создание файлов на поток(и), (сижу в эмуляторе Windows, пишу C#)

Код:
void Main() {

    {
        Parallel.For(
                    0,
                    80000,
                    i =>
                    {
                        FileStream fs = File.Open(@"C:\temp\"+i.ToString(),FileMode.OpenOrCreate);
                        fs.Close();
                    }
                );
    }
}
Main();
подскажите пожалуйста, какие настройки мне следует изменить в Linux(комманда)?

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


-- Изменять лимиты вы можете в конфигурационном файле, обычно /etc/security/limits.conf, или при помощи командной строки. Помните что при изменении лимитов через командную строку, ваши изменения не сохранятся после перезагрузки ОС. Например для изменения максимального количества пользовательских процессов (max user processes) используйте ключ u (из листинга вывода команды ulimit -a)

//т.е. я так понимаю, что перезагрузка для команды не нужна


Текущий лимит (Soft limit) открытых файлов на процесс для текущего пользователя:
Код:
su nginx -s /bin/bash -c 'ulimit -Sn'
99999
https://wiki.dieg.info/ulimit

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

Кстати в ожидании в многопотоке дожидался 2500 созданных файлов
тот же код в Windows чистом создает по 20000 файлов в секунду(но .Net разной версии, один очень старый SharpDevelop среда разработки, другой самый новый). Все же вероятно вопрос в Linux, но все же
Don't worry be happy

Последний раз редактировалось Izhic; 01.02.2024 в 16:50.
Izhic вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скачивание файлов в цикле через поток Shouldercannon Общие вопросы Delphi 3 05.05.2012 23:01
вебсервис на с#. хостинг windows. создание файлов zigler C# (си шарп) 2 29.02.2012 21:02
Создание файлов в Windows 7 Эльторо Visual C++ 3 13.07.2011 20:39
Создание командных файлов Windows sanchez Помощь студентам 0 18.05.2010 09:44
поток файлов мандарин Общие вопросы Delphi 1 24.04.2007 12:20