Я слышал от службы поддержки поставщиков уровня 3, что у NFS есть своего рода ограничение (мне сказали 16) на количество одновременных операций, которые могут выполняться одновременно.
Прошу прощения, что у меня больше нет подробностей, и некоторые поисковые запросы в Google не нашли то, что я ищу.
Существует ли это жесткое ограничение NFS, и если да, может ли кто-нибудь объяснить его подробнее?
Вы можете контролировать количество экземпляров nfsd, но каждый экземпляр nfsd может иметь несколько операций в очереди с ядром. В Linux и Solaris (насколько я помню) долгое время по умолчанию было 8 процессов, но есть много обстоятельств, при которых имеет смысл увеличить это число. Однако я не слышал об абсолютных ограничениях параллелизма в NFS как протоколе.
Как таковых ограничений на количество подключений нет, но есть некоторые практические ограничения, накладываемые выбором порта, как указано на странице руководства для NFS:
Клиенты NFS обычно связываются с серверами NFS через сетевые сокеты. Каждому концу сокета назначается значение порта, которое представляет собой просто число от 1 до 65535, которое различает конечные точки сокета с одним и тем же IP-адресом. Сокет однозначно определяется кортежем, который включает транспортный протокол (TCP или UDP), а также значения портов и IP-адреса обеих конечных точек.
Клиент NFS может выбрать любое значение исходного порта для своих сокетов, но обычно выбирает привилегированный порт. Привилегированный порт - это значение порта меньше 1024. Только процесс с привилегиями root может создать сокет с привилегированным портом источника.
Точный диапазон привилегированных исходных портов, которые можно выбрать, задается парой sysctl, чтобы избежать выбора хорошо известного порта, такого как порт, используемый ssh. Это означает, что количество исходных портов, доступных для клиента NFS, и, следовательно, количество подключений к сокетам, которые могут использоваться одновременно, практически ограничено всего несколькими сотнями.
Вы, наверное, думаете о sunrpc.tcp_slot_table_entries
который необходимо установить перед монтированием данной файловой системы.
До RHEL 6.3 это было статическое значение 16, которое часто увеличивается до 128, чтобы устранить узкое место. В 6.3 это становится самонастройкой и автонастройкой - см. P22 следующего ссылка на сайт.