А с каким буфером был собран squid ? И какие размеры книг - от и до ?
128MB я ставил, на убой, это же потолок. Книги обычно меньше метра.
Около половины хитов идет на страницы, а не на собственно книги, там
вообще < 100k обычно. Даунлоадеры народ юзает, но погоду они не делают,
размеры не те.
А как называется параметр ? Я сходу ни в гугле, ни в исходниках squid'а
не нашёл.
Я могу ответить достаточно точно только про nginx. Приходит
клиент c даунлоад-мастером за файлом, допустим, 5M. nginx
скачивает 5М от бэкенда за доли секунды. Даунлоад-мастер
принимает первые 32K и закрывает соединение. Затем открывает,
скажем, 5 потоков, качающих этот файл с разных мест. nginx
все эти запросы передаёт бэкенду и снова быстро их принимает.
То есть, nginx принимает от бэкенда что-то около 20М. Больший
процент системного времени вызван тем, что всё это копируется
сначала Апачом в ядро, а потом nginx'ом из ядра.
При таком раскладе апач никак не должен отставать от nginx по загрузке.
А он отстает безнадежно. Если только я правильно понимаю принцип
измерения загрузки процессора, конечно. Потому что system там или не
system, но загрузка приписывается тому процессу, который к системе
обратился. По-моему так.
Если я забираю файл непосредственно с Апача:
ab -n 500 -c 20 http://localhost:9000/5M
то top выглядит так:
CPU states: 7.5% user, 0.0% nice, 92.5% system, 0.0% interrupt, 0.0% idle
Mem: 81M Active, 61M Inact, 25M Wired, 28K Cache, 35M Buf, 82M Free
Swap: 1024M Total, 1024M Free
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
458 is 48 0 1212K 788K RUN 0:18 57.74% 45.51% ab
459 is 2 0 1712K 1248K sbwait 0:01 4.02% 3.12% httpd
461 is 29 0 1712K 1248K RUN 0:01 3.57% 2.73% httpd
452 is 2 0 1700K 1248K sbwait 0:01 2.56% 2.39% httpd
455 is 2 0 1700K 1248K sbwait 0:01 2.56% 2.39% httpd
451 is 2 0 1700K 1248K sbwait 0:01 2.56% 2.39% httpd
464 is 2 0 1712K 1248K sbwait 0:01 2.98% 2.25% httpd
463 is 2 0 1712K 1248K sbwait 0:01 2.91% 2.20% httpd
453 is 2 0 1700K 1248K sbwait 0:01 2.24% 2.10% httpd
454 is 2 0 1700K 1248K sbwait 0:01 2.19% 2.05% httpd
460 is 2 0 1712K 1248K sbwait 0:01 2.36% 1.81% httpd
Апач в сумме набирает 30%, на ab приходится 60%, еще куда-то пропадают
10% (машина ничего не делает, кроме ab).
Как устроен учёт user/system/nice/interrupt/idle, я более или менее
представляю себе, а вот как считается время процесса, представляю
достаточно расплывчато. Я неоднократно видел на FreeBSD, как работают,
скажем, 100 Апачей, у каждого 0.00%, наверху парочка с 0.02%-0.10%,
других активных процессов нет, а user и system time по 10%.
4) время обслуживания запроса в логах Апача. Я, например, не уверен,
что оно было меньше секунды для больших файлов.
И что это меняет, не понял?
Как что ? Если mod_perl отдаёт дайл-апному клиенту файл в течение минуты,
то тогда зачем вся эта схема фронтенд/бэкенд ?
На файлах бэкенд не тормозил особо, размеры не те, секунду на отклик там
уходило только при полном дауне, но этот случай мы не берем.
Дело не в отлике, а в том, сколько времени mod_perl занят отдачей большого
файла.
Игорь Сысоев
http://sysoev.ru