JPCERT-AT-2018-0009 JPCERT/CC 2018-02-27(æ°è¦) 2018-02-28(æ´æ°) I. æ¦è¦JPCERT/CC ã§ã¯ã2018å¹´2æ21æ¥ãããã 11211/udp ã®éä¿¡ãã¼ãã«å¯¾ããã¢ã¯ã»ã¹ãå¢å ãã¦ãããã¨ããå¤é¨çµç¹ããã®æ å ±æä¾ãããã³ã¤ã³ã¿ã¼ãããå®ç¹è¦³æ¸¬ã·ã¹ãã (TSUBAME) ã®è¦³æ¸¬ãã¼ã¿ãã確èªãã¦ãã¾ããTSUBAME ã«ã¦è¦³æ¸¬ãããã¹ãã£ã³ã¯ãå½è©²éä¿¡ãã¼ãã¸ã®ã¹ãã£ã³ãã±ãããããmemcachedã«å¯¾ãã¦è¡ããã¦ããå¯è½æ§ãèãããã¾ããmemcached ã®è¨å®ã«ãã£ã¦ã¯ãæå³ããã¤ã³ã¿ã¼ãããããã¢ã¯ã»ã¹å¯è½ãªç¶æ ã«ãªã£ã¦ãããã¹ãã£ã³ã«å¿çãã¦ããå¯è½æ§ãããã¾ãããã®ãããªå ´åã«æ»æã®è¸ã¿å°ã«ãããããmemcached ãä¿æããæ å ±ã¸ã¢ã¯ã»ã¹ããããããå¯è½æ§ãããã¾ããJPCERT/CCã§ã¯ãmemcach
Linuxã®ãããã¯ããã¤ã¹ã¬ãã«ã§å®ç¾ããrsyncããé«éãªå·®åããã¯ã¢ããã«ã¤ã㦠- ããããããã°ã®ç¶ãã¨ãã¦ãFacebook ã® memcached éç¨ã«é¢ããè«æãèªãã ã ã¿ã¤ãã«ãªã©ã¯ä»¥ä¸ã®éãã NSDI ã¯ãããã¯ã¼ã¯ã·ã¹ãã ã«é¢ãããããã¬ãã«ã®ã«ã³ãã¡ã¬ã³ã¹ã Scaling Memcache at Facebook Rajesh Nishtala, Hans Fugal, Steven Grimm, Marc Kwiatkowski, Herman Lee, Harry C. Li, Ryan McElroy, Mike Paleczny, Daniel Peek, Paul Saab, David Stafford, Tony Tung, Venkateshwaran Venkataramani NSDI'13 In Proceedings of the
memcached-keysã¯memcachedã®ãã¼ããã¼ã¿ãµã¤ãºãæå¹æéãä¸è¦§è¡¨ç¤ºããã½ããã¦ã§ã¢ã memcached-keysã¯Perl製ã®ãªã¼ãã³ã½ã¼ã¹ã»ã½ããã¦ã§ã¢ãWebãµã¼ãã¹ãé«éåããä¸ã§æ¬ ãããªãã®ããã£ãã·ã¥ã ããããã®ãã£ãã·ã¥ã·ã¹ãã ã¨ãã¦æåãªã®ãmemcachedã ããªã³ã¡ã¢ãªã«ä¿åããã®ã§é«éãKVSãªã®ã§ã·ã³ãã«ã«å©ç¨ã§ããã®ãå©ç¹ã ã å®è¡çµæ memcachedã使ã£ã¦ãã¦æ°ã«ãªãã®ããã¡ããã¨ãã£ãã·ã¥ã§æ¥ã¦ããã®ãå¦ãããã£ãã·ã¥ãã©ããããããã®ãã¨ãã£ãæ å ±ã§ã¯ãªãã ãããããã®åé¡ã解決ãã¦ãããã½ããã¦ã§ã¢ãmemcached-keysã ã memcached-keysã¯Perl製ã®ã·ã³ãã«ãªã½ããã¦ã§ã¢ã§ããã®ã¾ã¾å®è¡ããã ãã§ãã¼ã«ã«ï¼ããã©ã«ãã夿´å¯è½ï¼ã®memcachedã«ãããã£ãã·ã¥ãä¸è¦§è¡¨ç¤ºãã¦ãããããã£ãã·ã¥åãæå¹
ã¢ãã²ã¼ã§ç¥ãããDeNAã¯ãããã¯ã¨ã³ããã¼ã¿ãã¼ã¹ã«NoSQLã使ã£ã¦ãã¾ããããªããï¼ ããã¯MySQL/InnoDB 5.1ã®ç°å¢ã§ç§é75ä¸ã¯ã¨ãªã¨ãããå¤ãã®NoSQLã§ãå®ç¾ã§ããªããããªé«æ§è½ãå®ç¾ãã¦ãããããDeNAã®æ¾ä¿¡åç¯ï¼ã¾ã¤ã®ã¶ããã®ãï¼æ°ã¯ãèªèº«ã®ããã°ã«ãããªå 容ã®ã¨ã³ããªãUsing MySQL as a NoSQL - A story for exceeding 750,000 qps on a commodity serverãï¼è±èªï¼ããã¹ããã¦ãã¾ãã Yoshinori Matsunobu's blog: Using MySQL as a NoSQL - A story for exceeding 750,000 qps on a commodity server æ¾ä¿¡æ°ãææããããã«ãå¤§è¦æ¨¡ãªããããµã¼ãã¹ãæä¾ãã¦ãã伿¥ã®å¤ãã¯åæ£ç°å¢ã§
WebMemcacheã¯Python製/Google App Engineç¨ã®ããªã¼ã¦ã§ã¢ï¼ã½ã¼ã¹ã³ã¼ãã¯å ¬éããã¦ããï¼ãWebãµã¼ãã®è² è·ãæ¸ããããé«éåãèããä¸ã§æ¬ ãããªãã®ããã£ãã·ã¥ã ãæè¿ã®Webã·ã¹ãã ã§ã¯ããããå½ããåã«è¡ããã¦ããææ³ã ã ãã¼ã¿ãPOSTããæ æãæåãªãã£ãã·ã¥ã·ã¹ãã ã¨è¨ãã°memcachedã ããç¬èªã®ãµã¼ãã¹ãç«ã¦ãå¿ è¦ãããã®ã§èª°ããã使ãã訳ã§ã¯ãªãã ãããããã¾ã§ãæ¬ä¼¼çã§ã¯ããããGoogle App Engineãmemcachedãµã¼ãã«ãã¦ãã¾ãã®ãWebMemcacheã ã WebMemcacheã¯Google App Engineããã£ãã·ã¥ãµã¼ãã«ãããã¢ã¯ã»ã¹æ¹æ³ã¯HTTPã«ãªããJSONPã«ããã³ã¼ã«ããã¯ã«ã対å¿ãã¦ããããµã¼ããµã¤ãããã¯HTTPã§ä½¿ãã°è¯ãã ãããã¯ã©ã¤ã¢ã³ããµã¤ãã§ãJSONPã使ãã°éåæ
statsã³ãã³ãã®ãµãã³ãã³ãã®cachedumpï¼ããã使ãã°ï¼ãã¼ã®ãªã¹ãã¢ãããã§ãã¾ãï¼ telnetã§ããã¨ï¼ãããªæãã§ãï¼ memcachedãlocalhostã§ç«ã¡ä¸ããã°ããã ã¨ãã¾ãï¼ # telnet localhost 11211 Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. stats items % ã«ã©ãªã®ãç¢ºèª END set 123 0 0 4 % set ãã¼å¤ ãªãã·ã§ã³ã»ãã©ã°å¤ æå¹æéå¤ ãã¤ãæ° abcde % ããã¨æå®ãã¤ãæ°ã¨éãæåæ°ï¼5ãã¤ãï¼ãå ¥ãã¦ã¿ã CLIENT_ERROR bad data chunk % ã¡ããã¨ã¨ã©ã¼ã«ãªã£ã ERROR set 123 0 0 4 abcd % ä»åº¦ã¯ã¡ããã¨4ãã¤ãå ¥ãã¦ã¿ã ST
Webã¢ããªã±ã¼ã·ã§ã³ã¨è¨ãã°ãã¼ã¿ãã¼ã¹ã大æµä½¿ãããããæ¬å½ã«RDBMSã§ããå¿ è¦ãããã®ã ããããããããæ§é çã«ç®¡çããå¿ è¦ããªãã£ãããéå¹ççã«ãªã£ã¦ãã¾ããã¨ãããããã®ãããªå ´åã«èãããã®ããã¼/ããªã¥ã¼åã®DBå°å ¥ã ã ãã³ããã¼ã¯ ãã¼ã¿ãç´°ãã管çããããããªãã¸ã§ã¯ããã¨ãã¼/ããªã¥ã¼ãã¼ã¿ãã¼ã¹ã«æ¾ãè¾¼ãã§ãã¾ãã¨ããæ¹æ³ãã¨ãããããæ°å¹´ã§å¹¾ã¤ãã®ã½ããã¦ã§ã¢ãç»å ´ããããããããçµ±åãã¦å©ç¨ã§ããããã«ããã®ãMonetaã ã ä»åç´¹ä»ãããªã¼ãã³ã½ã¼ã¹ã»ã½ããã¦ã§ã¢ã¯Monetaãå種ãã¼/ããªã¥ã¼åDBã®å ±éã¤ã³ã¿ãã§ã¼ã¹ã ã Monetaã対å¿ãã¦ããã®ã¯ãã¡ã¤ã«ãMemcachedãã¡ã¢ãªãDataMapperãAmazon S3ãBerkeley DBãRedisãSDBMãTokyo Cabinetããã¦CouchDBã¨ãªã£ã¦ãããåDBãã¨ã«ã©
ããæ¹ memcache-clientã®gemãã¤ã³ã¹ãã¼ã«(追è¨ãã) gem install memcache-client 追è¨(2008/11/20) rails2.1ããã¯memcache-clientã忢±ããã¦ãã¾ãããï¼rails2.0ã«ã¯ãªãã£ãã§ãï¼ ãªã®ã§gemã®ã¤ã³ã¹ãã¼ã«ã¯ä¸è¦ã«ãªãã¾ããã activesupportã®ä¸ã«ããã¾ãã½ã¼ã¹è¦ãæãä¸ç·ã§ããï¼ã¡ãã³ã£ã¨ãªãã¡ã¯ã¿ãã¦ãã£ã½ãã£ãã§ããï¼ã ruby_lib\gems\1.8\gems\activesupport-2.1.2\lib\active_support\vendor\memcache-client-1.5.0 enviroment.rb ï¼çç¥ï¼ Rails::Initializer.run do |config| ï¼çç¥ï¼ config.action_controller.session
ï¼ã¡ãªã¿ã«å ¨é¨ã®èª¬æã¯ããã¾ãããé©å½ã«ããã¯ã¢ãããã¾ãããï¼ #trueã«ããã¨sessionã®æ ¼ç´å ãmemcacheã«ãªãã¾ãã sessions: trueãfalse #ã»ãã·ã§ã³ã®memcacheãµã¼ãã¼ãå¥ã«ãããå ´åã¯æå®ããã #ä¸ç·ã§ããå ´åã¯falseãæå®ï¼ããã©ã«ãï¼ session_servers: 192.168.xxx.xxx:11211 #ãã©ã°ã¡ã³ããã£ãã·ã¥ã®æ ¼ç´å ãmemcacheã«åãæ¿ããã fragments: trueãfalse #trueã«ããã¨æ©ããªãã£ã½ãã #ãã®ä»£ããruby以å¤ã®ã¯ã©ã¤ã¢ã³ãã¨ã®äºææ§ããªããªãã£ã½ãã #hashã®å®è£ ã夿´ãã¦å®ç¾ãã¦ãã¿ããã fast_hash: falseãfalse #trueã«ããã¨fast_hashããããæ©ããªãã£ã½ãã #ãã®ä»£ããfast_hashããäºææ§ã®æ¡ä»¶ãæªããªã
MixiãFacebookãWikipediaãªã©ãå¤§è¦æ¨¡ãªãµã¤ãã§memcachedãå©ç¨ããä¾ãå¢ãã¦ããããã¤ã³ãã¸ã£ã¼ãã«ã®ã¬ãã¼ãã§Facebookã®äºä¾ç´¹ä»ãããã®ã ãããªãã¨memcachedç¨ã®ãµã¼ãã¯805å°ã§ãã¡ã¢ãªå®¹éã¯15TBã«ããªãããã ããã£ã¹ã¯ã§ã¯ãªãã¡ã¢ãªã ãã§15TBï¼ã§ãããã¢ã¯ãã£ãã¦ã¼ã¶ã¼ã®æ°ã¯7000ä¸äººãããããã ããããããæãã¨ãªãã¨ãã¼ãã¦ã§ã¢ãåãè¦æ¨¡ã«ãªããããå¾ãªãã®ã§ããã ãã®ããã«å¤§è¦æ¨¡ãµã¤ããæ¯ããmemcachedã§ãããããã®ããã°ã©ã ã®ä¸èº«ã¯ä¸ä½ãããªããã®ãªã®ã§ãããããmemcachedã¯http://www.danga.com/memcachedã§ã½ã¼ã¹ã³ã¼ããé å¸ããã¦ãããç¾æç¹ã§ã®ææ°çã¯1.2.5ã§ããããã²ãã¦ã³ãã¼ããã¦ã¿ã¦ã»ãããããã¦ããããã«ãã¡ã¤ã«ãµã¤ãºã確èªãã¦ã¿ã¦ã»ãããããã¨ãããã¨ã«æ°ã¥
By Ilya Grigorik on February 11, 2008 If web architectures, performance, or scalability are topics you would like to keep on top of (who doesn't!), then chances are, you've heard of Nginx ("engine x"). Originally developed by Igor Sysoev for rambler.ru (second largest Russian web-site), it is a high-performance HTTP server / reverse proxy known for its stability, performance, and ease of use. The
ã©ã³ãã³ã°
ã©ã³ãã³ã°
ãç¥ãã
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}