Да с мемкэшем-то все в порядке — лошадь та еще, если б к нему только обращения шли, но ведь они идут к апачу, апач к пхп, пхп к мемкэшу. Вот та часть, что не-мемкэш и клала все.
Фиг знает. Может из-за того что PHP интерпретатор, может из-за времени коннекта, dogpile effect тоже сыграл свою роль, опять же база — тоже не резиновая — к ней и так слишком много запросов было (там 72 млн. записей было), чтобы еще и очередь обслуживать.
Помнится мы на олимпиаде по программингу видел паренька, который писал прогу и за два часа 5" дисковод он сломал таки чтениями туда-сюда. Хром, конечно, по-нежнее, но раз вам не нужно — я не заставляю.
А если Вы считаете что частые обращения не ломают винчестер — то боюсь, либо Вы не знаете физики, либо Вы думаете о технологии флешек.
А с паранойей у меня проблем нет — мы с ней дружим. Вот например Гугл каждый день с одного из моих сайтов скачивает 100 000 страниц, а выдает в индексе всего 1000 (в сумме), при том это не дубль-контент. Вопрос — куда деваются остальные 3 млн проиндексированных страниц в месяц? Или вот еще, например, что на больше чем 95% топовых сайтов есть хоть что-то отслеживаемое гуглом или одним из его аффилиэйтов (doubleclick, например, тоже принадлежит Гуглу). Даже на Хабре есть подконтрольный гуглу элемент :)
Да ну не :) Это ж мои личные трудности, а вот то что Chrome долбит винчестер постоянно — это общественная проблема (и ее, кстати, инженеры Гугла не планируют решать).
Про БД — не спорю. Вопрос в том, что скинуть в базу данные раз в 10 минут — снизит нагрузку в, может быть, и миллионы раз. А вот скрипт, который как только закончил свою работу — так его данные garbage collector сразу и подчистил — такого не сможет. Но, аргумент — верный.
Ну про почему не D или не Java — не знаю, а вот против Erlanga мало чего имею. Кроме как… Была у нас тут дискуссия на Hacker News на тему того почему бы сайты на Lisp'е не делать. Аргумент, который лучше всего прозвучал — найти того, кто будет писать на C++ несравнимо проще, чем уберхакера, который хорош знает Lisp, чтобы это поддерживать. А, к сожалению, хороший персонал — главный головняк почти всех фирм (в Москве, по крайней мере, знаю точно).
А ну и рассчитывать на то, что ученые будут делиться деньгами, которые им пришли с какими-то там студентами-гениями… Да ну бросьте, вы не в Германии живете. Здесь человек дослужился до поста, где деньги, и уже никому их не отдаст. Потому что так здесь принято…
Тут проблема будет такая:
1 человек может легко сделать что-то;
2 человекам надо договориться о том как что-то сделать;
3 человека — это уже совещание, которое заканчивается тем что принимается среднее, никого не устраивающеее решение.
…
2 профессора очень редко могут договориться о единой истине в прогрессивных областях, что уж говорить о десяти, ста?
Ученые люди имеют тенденцию считать свое мнение единственно правильным.
В какой-то момент формируется костяк людей, которые вырабатывают единое, фигово, но все же устраивающее друг друга мнение.
Любое несогласие пресекается.
Прогресс закончился ибо верхушка несогласна с тем что кто-то мелкий снизу высказывает свое мнение.
Какой прогресс был у Гугла, когда они только начали. А сейчас? У них лучшие умы, а разве их прогресс такой гигантский? Ну изобрели Sqared — ерунду, с которой только поиграться. Ну Wave — да, но это не прогресс, так смена интерфейсов к чату.
Несмотря на то, что Google по сути и есть то, что Вы предлагаете — они топчатся на месте. Ибо верхушка не согласна принимать новые смелые решения (тот же «Google» Dodgeball), а низы не могут ничего сделать без одобрения сверху.
Решение, как мне кажется — как раз в маленьких стартапах, где люди и пашут ради своего будущего. Тут важнее гораздо было бы сделать сервис, который может объединять людей «ума» и людей «рогов», которые возьмут идею человека «ума» и рогами упрутся, но будут пропихивать ее везде и всюду — упертых, упрямых, настойчивых, получающих за это половину прибыли. Ибо у упрямых редко есть гениальные идеи, а у гениев редко есть упрямость чтобы ее протолкнуть.
Ведь какой бы классной идеей не была — она все равно встретит сопротивление верхушки. Внутри организации ли, сообщества, общества или государства.
Потому что я больше инженер, чем математик.
Допустим -20 будет достаточно в 99% случаев, так зачем же в 5 раз увеличивать объем работы сервера для обработки 1% случаев?
Да и -20 это эмпирическая величиная, которую в зависимости от проекта меняю. Если там явно будет большая разреженность данных — она будет больше, а если там удаляться будет 1 из 100 записей — то может и вообще 11 сделаю.
«DESC LIMIT 10» сначала отсортирует все строки таблицы (1000, 10000 или сколько их там) и из них возьмет 10; а «id>MAX(id)» возьмет 10 элементов и их отсортирует. По крайней мере обычно так происходит. Ну только там "… WHERE id>(SELECT MAX(id) FROM table)-20 ORDER BY id DESC LIMIT 10" ибо бывают удаленные элементы и если сделать -10 — то их может меньше 10 в конце получиться.
Антивир не стоит потому что мне приходится обрабатывать базы данных с миллиардами строк и обработка терабайт фотографий и антивир просто убивает мне винчестер реал-тайм сканированием. Именно поэтому у меня винчестеры постоянно летят и еще одна жужжалка винчестером в виде Chrome совсем не помогает. Просто не запускаю подозрительные файлы + TCPView/FileMon регулярно просматриваю. На крайний случай есть VMware — в нем замечательно запускаются подозрительные вещи и отправляются в «корзину» снэпшотом. )
В виде файрвола у меня домашний роутер — входящие соединения идут на него. Исходящие — как я и говорил TCPView спасет отца + использование OpenDNS в качестве DNSов предотвращает многие пакости. + замечательный патч, закрывший нафиг все виндовые RPC порты.
И последнее — если говорящая обезъяна на мигающем баннере мне говорят, что я выиграл жену короля в Нигерийскую лотерею, я стараюсь редко вводить номер своей кредитной карточки — не чаще раза в неделю.
Тут проблема обратная. Ну смонтировать-то (через subst) AppData/Chrome на m: можно — а вот заставить Chrome писать в m:, а не в AppData/Chrome — вот задачка.
Фишка как раз смонтировать каталог на другой том. (сделать symbolic link, грубо говоря — я кстати пробовал это сделать (.lnk), не работает).
На небольшой конкурентнсти — Webtoolkit в полтора раза выигрывает по скорости у Java, и оба варианта nginx'a выигрывают.
На 500 конкурентах идут таймауты (2% страниц не отдалось) и большое среднеквадратичное отклонение (разброс значений), что значит что результаты неоднородны (проще говоря — не примерно одинаково всем отдает, а одним — быстро, другим — медленно (до 3 секунд) — вообще говоря, это не есть хорошо, но в этом плане nginx еще хуже проявился — до 80 секунд).
Но если судить чисто по среднему значению — 500 конкурентов — на уровне с Webtoolkit, быстрее Nginx+fastcgi, медленнее Nginx «Welcome to nginx» (эта скорость, я подозреваю, может быть достигнута только написанием C модуля к nginx'у).
Интереса ради на этом же (VMware, напомню) запустил Hello World на Python's CherryPy WSGI+BaseHTTPRequestHandler,HTTPServer: не смог подняться выше 25 конкурентных запросов, но это больше проблема BaseHTTPRequestHandler,HTTPServer (без ThreadingMixIn).
А если Вы считаете что частые обращения не ломают винчестер — то боюсь, либо Вы не знаете физики, либо Вы думаете о технологии флешек.
А с паранойей у меня проблем нет — мы с ней дружим. Вот например Гугл каждый день с одного из моих сайтов скачивает 100 000 страниц, а выдает в индексе всего 1000 (в сумме), при том это не дубль-контент. Вопрос — куда деваются остальные 3 млн проиндексированных страниц в месяц? Или вот еще, например, что на больше чем 95% топовых сайтов есть хоть что-то отслеживаемое гуглом или одним из его аффилиэйтов (doubleclick, например, тоже принадлежит Гуглу). Даже на Хабре есть подконтрольный гуглу элемент :)
Так что с паранойей мы уживаемся неплохо.
1 человек может легко сделать что-то;
2 человекам надо договориться о том как что-то сделать;
3 человека — это уже совещание, которое заканчивается тем что принимается среднее, никого не устраивающеее решение.
…
2 профессора очень редко могут договориться о единой истине в прогрессивных областях, что уж говорить о десяти, ста?
Ученые люди имеют тенденцию считать свое мнение единственно правильным.
В какой-то момент формируется костяк людей, которые вырабатывают единое, фигово, но все же устраивающее друг друга мнение.
Любое несогласие пресекается.
Прогресс закончился ибо верхушка несогласна с тем что кто-то мелкий снизу высказывает свое мнение.
Какой прогресс был у Гугла, когда они только начали. А сейчас? У них лучшие умы, а разве их прогресс такой гигантский? Ну изобрели Sqared — ерунду, с которой только поиграться. Ну Wave — да, но это не прогресс, так смена интерфейсов к чату.
Несмотря на то, что Google по сути и есть то, что Вы предлагаете — они топчатся на месте. Ибо верхушка не согласна принимать новые смелые решения (тот же «Google» Dodgeball), а низы не могут ничего сделать без одобрения сверху.
Решение, как мне кажется — как раз в маленьких стартапах, где люди и пашут ради своего будущего. Тут важнее гораздо было бы сделать сервис, который может объединять людей «ума» и людей «рогов», которые возьмут идею человека «ума» и рогами упрутся, но будут пропихивать ее везде и всюду — упертых, упрямых, настойчивых, получающих за это половину прибыли. Ибо у упрямых редко есть гениальные идеи, а у гениев редко есть упрямость чтобы ее протолкнуть.
Ведь какой бы классной идеей не была — она все равно встретит сопротивление верхушки. Внутри организации ли, сообщества, общества или государства.
Допустим -20 будет достаточно в 99% случаев, так зачем же в 5 раз увеличивать объем работы сервера для обработки 1% случаев?
Да и -20 это эмпирическая величиная, которую в зависимости от проекта меняю. Если там явно будет большая разреженность данных — она будет больше, а если там удаляться будет 1 из 100 записей — то может и вообще 11 сделаю.
Правда RAMDisk'а среди «Возможные значения имени тома» не наблюдается.
Антивир не стоит потому что мне приходится обрабатывать базы данных с миллиардами строк и обработка терабайт фотографий и антивир просто убивает мне винчестер реал-тайм сканированием. Именно поэтому у меня винчестеры постоянно летят и еще одна жужжалка винчестером в виде Chrome совсем не помогает. Просто не запускаю подозрительные файлы + TCPView/FileMon регулярно просматриваю. На крайний случай есть VMware — в нем замечательно запускаются подозрительные вещи и отправляются в «корзину» снэпшотом. )
В виде файрвола у меня домашний роутер — входящие соединения идут на него. Исходящие — как я и говорил TCPView спасет отца + использование OpenDNS в качестве DNSов предотвращает многие пакости. + замечательный патч, закрывший нафиг все виндовые RPC порты.
И последнее — если говорящая обезъяна на мигающем баннере мне говорят, что я выиграл жену короля в Нигерийскую лотерею, я стараюсь редко вводить номер своей кредитной карточки — не чаще раза в неделю.
Так что да, я вполне уверен в своей системе.
Фишка как раз смонтировать каталог на другой том. (сделать symbolic link, грубо говоря — я кстати пробовал это сделать (.lnk), не работает).
*** Java
100; 54ms; .540; 1850 Req/s
500; 214ms; .429; 2333 Req/s; но 2% запросов — таймауты
На небольшой конкурентнсти — Webtoolkit в полтора раза выигрывает по скорости у Java, и оба варианта nginx'a выигрывают.
На 500 конкурентах идут таймауты (2% страниц не отдалось) и большое среднеквадратичное отклонение (разброс значений), что значит что результаты неоднородны (проще говоря — не примерно одинаково всем отдает, а одним — быстро, другим — медленно (до 3 секунд) — вообще говоря, это не есть хорошо, но в этом плане nginx еще хуже проявился — до 80 секунд).
Но если судить чисто по среднему значению — 500 конкурентов — на уровне с Webtoolkit, быстрее Nginx+fastcgi, медленнее Nginx «Welcome to nginx» (эта скорость, я подозреваю, может быть достигнута только написанием C модуля к nginx'у).
И еще: Java кушает 22MB оперативки, Webtoolkit 1.5MB; nginx + fastcgi едят 7.5Mb(2 воркера)+0.9(fastcgi c).
Интереса ради на этом же (VMware, напомню) запустил Hello World на Python's CherryPy WSGI+BaseHTTPRequestHandler,HTTPServer: не смог подняться выше 25 конкурентных запросов, но это больше проблема BaseHTTPRequestHandler,HTTPServer (без ThreadingMixIn).