Для маленького веб сервера нужно очень мало памяти - несколько килобайт (буквально) - ведь все что он делает - это простейший парсинг строки реквеста, потом читает нужный файл с файловой системы, и отдает его в респонсе. На старой ардуинке с несколько килобайт RAM есть имплементации.
Кроме веб сервера нужна память для TCP/IP стэка, точнее - буфера для открытых TCP коннекшенов. В предельном случае можно его зажать поддерживая всего одно TCP коннекшн за раз, но даже для одного клиента это может быть проблемой - современные браузеры обычно открывают несколько параллельных TCP. Так что крайне желательно поддерживать хотя бы штуки четыре в параллель.
И для каждого TCP коннекшена нужно хотя бы килобайт 8, чтобы поддерживать окно в 4KB в каждую сторону для более-менее приемлемой скорости, особенно при высокой задержке распространения. Т.е. для четырех параллельных коннекшенов нужно хотя бы 32КБ памяти под буферы TCP стэка.
Потом еще нужно сколько-то памяти для ОС, драйверов, буферов обмена с девайсами в этих самых драйверах и т.п.
В принципе даже младших версий PDP11 с 56 килобайт памяти вполне достаточно для вполне бодрого HTTP сервера выдающего статический контент (файлы), и еще останется сколько-то памяти для кастомной логики/кода запускаемого например как CGI.
no subject
Date: 2024-03-15 13:34 (UTC)Кроме веб сервера нужна память для TCP/IP стэка, точнее - буфера для открытых TCP коннекшенов. В предельном случае можно его зажать поддерживая всего одно TCP коннекшн за раз, но даже для одного клиента это может быть проблемой - современные браузеры обычно открывают несколько параллельных TCP. Так что крайне желательно поддерживать хотя бы штуки четыре в параллель.
И для каждого TCP коннекшена нужно хотя бы килобайт 8, чтобы поддерживать окно в 4KB в каждую сторону для более-менее приемлемой скорости, особенно при высокой задержке распространения. Т.е. для четырех параллельных коннекшенов нужно хотя бы 32КБ памяти под буферы TCP стэка.
Потом еще нужно сколько-то памяти для ОС, драйверов, буферов обмена с девайсами в этих самых драйверах и т.п.
В принципе даже младших версий PDP11 с 56 килобайт памяти вполне достаточно для вполне бодрого HTTP сервера выдающего статический контент (файлы), и еще останется сколько-то памяти для кастомной логики/кода запускаемого например как CGI.