On technologies and load countermeasures supporting large-scale traffic.
CodeGrid 2å¨å¹´ãã¼ãã£ã§LTãã¦ãã¾ããã 2å¨å¹´ããã§ã¨ããããã¾ãï¼ï¼ TL;DR stubcellã¨ããjsonãè¿ããã¨ã«ç¹åããstubãµã¼ãã¼ãä½ãã¾ãã å é¨çã«json5ã使ããã¨ã§å®ç¾©ãã¡ã¤ã«ã«ã³ã¡ã³ããæ¸ããã¨ãã§ããéçºè éã®ã³ãã¥ãã±ã¼ã·ã§ã³ã®è£å©ã«ãªã grunt, gulpããstubãµã¼ãã¼ã使ããã¨ãã§ãããããããã³ãã¨ã³ãã¿ã¹ã¯ã©ã³ãã¼ã¨ç¸æ§ãè¯ã çºè¡¨è³æ stubcell æ¦è¦ ããããJSONãè¿ããã¨ã«ç¹åããstubãµã¼ãã¼ã§ãã ãã¼ã ã§éçºããæã«ãAPIãµã¼ãã¼ãã¯ã©ã¤ã¢ã³ããµã¤ããwebsocketãµã¼ãã¼ã¨ãã£ãæãã«è¤æ°ã®å½¹å²ãè¤æ°ã®äººæ°ã§è«ãè² ã£ã¦åæä¸¦è¡éçºãããã¨ãå¤ããAPIã®ã¨ã³ããã¤ã³ãããªãã¦ãã¯ã©ã¤ã¢ã³ããµã¤ããwebsocketã§ãéçºã§ããããã«ããããã«stubcellãä½ãã¾ãã*1ã ã¾ãè¤æ°äººã§
ããã¼ããã½ã³ã³ããµã¼ãã«ãããæ§è½ã¯ãã¹ã¯ããã並ã ãUPSã¤ãã¦ãã éãã ããããããªãã¦ã馬鹿ãªãã¨è¨ãã ã人ãçµ¶ãã¾ãããç©ã«ã¯é©æé©æã£ã¦ãã®ããããã§ããã â»ç¥ããªã人ã®ããã«æ¸ãã¨ãã¨ããµã¼ãã¼ãããã£ã¦ããã¨ã£ã¦ãã½ããæ¬¡ç¬¬ã§ãã®è¾ºã®ãã¼ããã½ã³ã³ã§ãã»ã¨ãã©åããã¨ãã§ãããã ãã©ããã®è¾ºã®ãã¼ããã½ã³ã³ã§ã¯Windowsã ããã¨Linuxã ããã¨ãµã¼ãã¨ãã¦ã¯ã¾ã¨ãã«ä½¿ããªããã£ã¦ãã話ã â å è¨äºãæ¸ãããåï½2010å¹´ããã¾ã§ããã¡ã®è·å ´ã§ã¯ããããªé¨ç½²ã§å°ãå¤ããªã£ã¦å人ã®ãã¹ã¯ã§ä½¿ãããªããªã£ããã¼ãPCãé¨å ãµã¼ãã¨ãã¦åæã«ãã¡ã¤ã«ãµã¼ããããªã³ããµã¼ããã¢ããªãµã¼ãã«ãã¦ãã¾ãããããããã·ã¹ãã é¨ã®ãããªã®ãç¡ãã®ã§ããããæ¾é¡ãä¸è¦ãã¾ãåãã¦ãããåããã¦ããããã«è¦ããã®ã ãã©â¦  â»ã ã£ããããã§ãããããçãªèªç§°SIerã¯ã©ãã«ã§ãããã
Monitoring Casual Talks #7 #monitoringcasual ãã 4 å¹´ãããã®ã¢ãã¿ãªã³ã°ç³»ã® OSS/SaaS ãåæãã¦ã¿ã¾ããã太åã¯æ°ã«ãªã£ã¦ããã¤ã§ãã â»ãã®ã¹ã©ã¤ãã¯å人ã®è¦è§£ã§ãããæå±ããçµç¹ã®å ¬å¼è¦è§£ã§ãçµç¹ã代表ãããã®ã§ãããã¾ããâ»
ããã³ãã¨ã³ã¸ãã¢ã«ç¥ã£ã¦ããããããªãã¼ã¹ãããã·ã®éè¦æ§ | RickyNews ãã®è¨äºãç®ã«å ¥ã£ã¦èªãã§ã¿ãããªãã»ã©ãæ¨ä»ã¯ Reverse Proxy ã¯ä¾¿å©ãª L7 ã«ã¼ã¿ã¼çãªãã®ã¨ãã¦èªèããã¦ããã®ã ãªãã¨æã£ããURL ã® Rewrite ããVirtualHost äºã ã確ãã« Reverse Proxy ã®ä¾¿å©ãªå´é¢ã§ã¯ãã䏿¹ãããã㯠Nginx ãªã©ã® Reverse Proxy ã§ãªããã°å®è£ ãä¸å¯è½ãã¨è¨ãã°ãããªãã¨ã¯ãªããã®ã§ãããã èªå㯠Reverse Proxy ã¯ããããããµã¼ãã¼/ã¤ã³ãã©çãªå´é¢ã§ãã®å½¹å²ãæãã¦ããã仿´ä½ãã¨ãããã®ã§ãããããæ¼ä¼ã¿ãã¦ãæéãããã®ã§ç°¡åã«æ¸ãã¦ã¿ããã Reverse Proxy ã¯Webã·ã¹ãã å ¨ä½ã®ãªã½ã¼ã¹æé©åã®ããã®ãã¼ã Reverse Proxy ã®ã¤ã³ãã©çãªè¦ç¹ã§ã®å½¹å²ã¯ãWeb
åé·åããããã¹ããã¹ã±ã¼ã«ã¢ã¦ãããããã¹ããªã©ã®åããµã¼ãæ§æããã¤ãã¹ãã°ã«ã¼ããããããµã¼ãã¹ã«æå±ãããã¹ãå ¨ã¦ã«åæã«sshãã¦åæã«æä½ããããã¨ãããã è¤æ°ã®ãã¹ãã«åæãã°ã¤ã³ãããã¼ã«ã¨ã㦠cssh ããããã©ãæ¯åè¤æ°ã®ãã¹ãåãããããå ¥åããããããã«å¤ããªããã¹ãä¸è¦§ãã¡ã¤ã«ãæå ã«æã¡ãããªããImmutable Infrastructure æä»£ã«ã¯ããããªããImmutable Infrastructure æä»£ã«ã¯ãã¹ãåãªãã¦æ¯æ¥å¤åããã誰ãè¦ãã¦ãªãããµã¼ã管çãã¼ã«ä¸ã®ã°ã«ã¼ãåã使ã£ã¦ã°ã«ã¼ãé ä¸ã®ãã¹ãã«åæã«sshãããã ãã¨ãcssh ã¯å人çã«æåããªããå¾®å¦ãªã®ã§ã代ããã« tmux 㨠ssh ãçµã¿åããã¦ããã cssh ã¯ãã¹ã¿ã¨ãã¹ã¬ã¼ãã¨ãæ°æã¡ã¯ããããã©ãè¤æ°ã¦ã£ã³ãã¦æä½ã¯ä½¿ãæ £ããã¿ã¼ããã«ãã«ããã¬ã¯ãµã使
Single-page Application(SPA)ã«ããããã³ãéçºã«ãããæéãè¨å¤§ã«ãªã£ã¦ãã¾ããSPAã®éçºãããã¨ãã«éä¿¡é¨åï¼JSONãJSONPãªã©ï¼ãã©ãããã°ããã®ããåé¡ã«ãªãã¾ããè§£çã¨ãã¦ã¯ã¹ã¿ãAPIãµã¼ãã使ã対å¿ãã¾ãã ç»é¢éçºããããã«ã¢ããªã±ã¼ã·ã§ã³ãµã¼ããæ§ç¯ããã®ã¯æéã®ç¡é§ã§ãã®ã§gruntã¿ã¹ã¯ã«ã¢ãã¯ãµã¼ããæ§ç¯ãç°¡åå®è£ ãè¡ãã¾ãããã ãæ¬ç©ã®ãAPIãµã¼ãã使ãå ´åã¯åããå¤ãããã¨ã§ç°¡åã«çµåãã¹ãã§ãã¾ãããCIã使ãã¨ãã¯ãã¡ããã¢ãã¯ãµã¼ãã§ã®ãã¹ãã«ãªãã¾ãã®ã§ã¢ãã¯APIãµã¼ãã¯æ´»ç¨ããã®ãè¯ãã¨èãã¾ãã ã¢ãã¯APIãµã¼ã gruntã§ã¢ãã¯ç¨APIãµã¼ããç«ã¡ä¸ããããã®ãã©ã°ã¤ã³ã¨ãã¦æåãªãã®ã¨ãã¦ï¼ã¤åå¨ãã¾ãã grunt-easymock grunt-stubby easymockã¯node-easymo
ããã¾ã§ãè² è·ãã¹ãã®å®è¡ã«ã¯å°éç¥èã¨å®è¡ç°å¢ã®æºåã«å¤ãã®ã³ã¹ããå¿ è¦ã§ããã社ä¼ããWebãµã¼ãã¹ã®æ§è½ã«é¢ããä¸å ·åãã¼ãã«ããããã«ãç°¡åãç¡æãå§åçãªè² è·ãã¹ããµã¼ãã¹ãæä¾ãã¾ãã ã¦ã¼ã¶ããªã㣠ãµã¼ãã®å¿çé度ã¯å¸¸ã«å¤åããå©ç¨è ã®ç´å¸°çã«å¤§ããå½±é¿ãä¸ãã¾ãããµã¼ãã®å¿çé度ãå¯è¦åããæ¥ã è¨æ¸¬ãããã¨ã§ããã¿ããã«åé¡åæãçºè¦ã§ãã¾ãã æ§è½æ¸¬å® ãµã¼ãã®æ§è½ä¸è¶³ã«ããããã£ããã®å¶æ¥æ©ä¼ã失ããµã¤ããå¤ãåå¨ãã¾ãããµã¼ãã®æ§è½ãæ£ããææ¡ãããã¨ã§ãäºæ¸¬ãããè² è·ã«å¿ãããµã¼ãã®å¢å¼·ãã§ãã¾ãã è² è·ãã§ãã«ã¼ï¼ã«ã¬ã³ãã¼ãå©ç¨ãããã¹ãï¼ã¸ã§ãï¼ã®äºç´ããã°ã©ãã£ã«ã«ãªçµæç»é¢ãæºåãã¦ãããåå¿è ã®æ¹ã«ã大å¤ä½¿ãããããµã¼ãã¹ãã¤ã³ã¹ã¿ã³ããã¹ãï¼URLãå ¥åããã ãã§ãããã«è² è·ãã¹ããè¡ããã¨ãã§ãã¾ããã·ããªãªãã¹ãï¼ãã°ã¤ã³ãå¿ è¦ãªãã¼ã¸ãè¤æ°ã®ã
ã¡ãã£ãï¼ã¤ã³ãã©æ å½ã®æ± ç°ï¼@mikedaï¼ã§ãã 仿¥ã¯ãµã¼ãç£è¦å¨ãã®è©±ã§ãã ã¾ãNaviPlusã§ã¯ããµã¼ãç£è¦ã«Nagiosã¨Muninã使ã£ã¦ãã¾ãã æ®éã§ããï¼ æ°ãã¤ãã¦ãããã¨ã¯ãã¡ããã¨ãµã¼ãã¹ãç£è¦ããï¼æ£å¸¸ãªHTTPå¿çãå¿çé度ãªã©ï¼ã¨ãããã¨ã§ããããã ã¾ããã®ã¸ãã¯ä»æ¥ã®æ¬é¡ã§ã¯ãªãã®ã§å¥ã®æ©ä¼ã«è©±ãã¾ãã ã·ã¹ãã éç¨ãã¦ãã¨ããããªæ å ±ãè¦ãããªã¼ã¨ããã®ãåºã¦ãã¾ãã ä¾ãã°ãä»åç´¹ä»ããã®ã¯ãããªã®ã§ãã é害çºçæï¼ä¾ãã°æ¨æ¥ã®XXæXXåï¼ã®å ¨ãµã¼ãã®ããã»ã¹ãªã¹ã å ¨ãµã¼ãã®ãªã½ã¼ã¹ä½¿ç¨ç¶æ³ã®ã¶ãã¯ãªã¨ããã¬ãã¼ã ãã®DBã§XXæããã«æµãã¦ãã¯ã¨ãªã¯ã©ããªã®ã å»å¹´ã®ã»ã¼ã«æã®ã¢ã¯ã»ã¹æ°ããµã¼ãè² è·ã®ç¶æ³ãè¦ãã æ¬çªãµã¼ãã§tmuxãèµ·åãã£ã±ãªãã®äººãããªãã ããããæ¢åãã¼ã«ï¼ãã¡ã ã¨Nagios/Muninï¼ã«ãããããªããã®
ã¯ã¦ãªã®ãµã¼ã管çãã¼ã«ã®ææ³ã¨ãµã¼ãã¡ããªã¯ã¹å¯è¦åã·ã¹ãã ã®å®è£
âçéâ å°å ¥ã®èå°è£ï¼ãã¸ã¿ã«åºãæä¾ããããã¸ã¿ã«èªè¨¼ã¢ããªãã®æ´»ç¨ã§å®ç¾ãå®å ¨ã§ç°¡åãªæ¬äººç¢ºèªã·ã¹ãã ã
WEBã³ã³ãã³ãé ä¿¡ã«Linuxã使ãã®ã¯ä¸è¬çã«ãªãã¾ããããCentOSãUbuntuãã¯ããã大æµã®ãã£ã¹ããªãã¥ã¼ã·ã§ã³ãä½ã¹ããã¯ãªãã·ã³ã§ãåããããªåæè¨å®ã«ãªã£ã¦ãã¾ãã ãã©ãã£ãã¯ã®ä¸éã§ããªã CPUãªã½ã¼ã¹ã®æ¯æ¸ã§ããªã HDDã®IOãé ãåé¡ã§ããªã ã³ã³ãã³ããéããªã(æ¥ç¶ã§ããªã) ã¨ããã±ã¼ã¹ã§ãè¦è½ã¨ããã¡ãªLinuxã®ãããã¯ã¼ã¯å¨ãã®ãã¥ã¼ãã³ã°ã«ã¤ãã¦ã§ãã iptablesé¢é£ iptablesã使ç¨ãã¦ããå ´åãä¸è¨ã®ãã©ã¡ã¼ã¿ã注æãã¦ä¸ããã /proc/sys/net/ipv4/ip_conntrack_max ip_conntrackã«è¨é²ã§ããæå¤§å¤ã§ãã65536ããããåæè¨å®ã«ãªã£ã¦ãããã¨æãã¾ããããã ã¨ãã±ããã®åããã¼ããããã«èµ·ãã¦ãã¾ãã¾ãã1ã³ãã¯ã·ã§ã³ãããç´350ãã¤ãæ¶è²»ããã®ã§ãå®è£ ããã¦ããã¡ã¢ãªã«å¿ãã¦
ã¯ããã« ã¢ã¯ã»ã¹ãæ¥å¢ããã¨ãå¿çæéãèããæªåãããµã¤ãã¯ããã¾ãããï¼ æ®æ®µã¯200ããªç§ä»¥å ã§å®å®ãã¦ã¢ã¯ã»ã¹ããã°ãã¦ããã®ã«ãã¤ãã³ããããã£ã³ãã¼ã³ãããéå§ããç¬éãããæ®æ®µã®ï¼åãï¼åã®ã¢ã¯ã»ã¹ã殺å°ãããã®çµæãã¬ã¹ãã³ã¹ã¿ã¤ã ã3ç§ã¨ã9ç§ã¨ããããããã«ãªã£ã¦ãã¾ããã¨ã£ã¦ããã¾ãããã ãããµã¤ãã®å®ç¶ ã¤ãå æ¥ã¾ã§ããããªãµã¤ããç§ã®ç®ã®åã«ãããã¾ãããèªç¤¾ã§éå¶ãã¦ããæã½ã¼ã·ã£ã«ç³»ã®ãµã¤ããªãã§ãããã¤ãã³ãéå§æå»ã¨åæã«ã¢ã¯ã»ã¹æ°ãæ¥å¢ããã®ã§ããã¨ã¯ãããæè©®ã¯æ®æ®µã®2åã¨ã3åç¨åº¦ã®æ°ãªã®ã ãããå°ãªãã¨ã1ç§ä»¥å ã«ã¬ã¹ãã³ã¹ãè¿ãããããã®æ§è½ã¯ç¶æããããã®ã§ãã ãããå®éã¯å°ã£ããã¨ã«ãå¿çã«3ç§ä»¥ä¸ãããã£ã¦ãã¾ãå¦çã大éã«çºçãã¦ãã¾ãç¶æ³ã«é¥ã£ã¦ãã¾ã£ã¦ãã¾ãããããã¯ãã£ã¨ãã©ããã«ããã«ããã¯ãããã«éãããã¾ããã 仮説ãç«
linuxãµã¼ãã®OSå ¨ä½ã«å¹ãã«ã¼ãã«ãã©ã¡ã¼ã¿ã®ãã¥ã¼ãã³ã°ç®æã¨ ãã®è¨å®å¤ãã¾ããã®çç±ãã¾ã¨ãã¦ããã ããã¾ã§èªåã®ç°å¢ã§ã¯ãããããã¨ããã ãã§ããã æä¾ãããµã¼ãã¹ãã¨ã«æ¤è¨ãå¿ è¦ã§ããã ã©ããã©ã夿´ããã®ããã¾ãã¯å¤ããªãã®ãããã®å¤æææã«ã¯ãªãã ããã â»ã¦ã¼ã¶åä½ã§ã·ã¹ãã ãªã½ã¼ã¹ã«å¶éããããå ´åããã¡ããåç §ãã¦ã»ããã 以ä¸ã¯/etc/sysctl.conf ã§è¨å®ãããã®ã¨ããã â å¤§è¦æ¨¡ãµã¤ãç¨ãã¥ã¼ãã³ã° kernel.pid_max åä½ï¼pidã®æå¤§æ° è¨å®å¤ï¼131072 çç±ï¼pidãæ¯æ¸ãããªã vm.max_map_count åä½ï¼mmapãmallocæã«ã¡ã¢ãªãä»®æ³ç©ºéã«ãããã³ã°ã§ããæå¤§ãã¼ã¸æ° è¨å®å¤ï¼300000 çç±ï¼ãããã³ã°ã§ããªããªãäºæ ãé²ã net.core.somaxconn åä½ï¼æ¥ç¶(ã½ã±ãã)ãã¥ã¼ã®
ååã®ç¶ãã ãã±ããèªä½ãé¶ããã«å¦çã«å ¥ã£ãå¾ã«SYNãè½ã¨ãã®ã¯ä»¥ä¸3ãã¿ã¼ã³ã syncookieç¡å¹æã«synã®backlog(tcp_max_syn_backlog)ãæº¢ãã¦ãã listenã®backlogãæº¢ãã¦ãã(3way-handshakeå®äºå¾ã®acceptå¾ ã¡æ¥ç¶) net.ipv4.tcp_tw_recycleã®å¶éã«æµè§¦ ã§ãä»ååé¡ã«ãªã£ã¦ããã®ã¯æå¾ã®tcp_tw_recycleã¸ã®æµè§¦ã ã£ãã ç¾è±¡ã¨ãã¦çºçãããã®ã¯ã以ä¸ã®æ¡ä»¶ããã¹ã¦æºããå ´å ãµã¼ãå´ã§net.ipv4.tcp_tw_recycleãæå¹ TCPã¿ã¤ã ã¹ã¿ã³ããªãã·ã§ã³ãä½¿ç¨ åä¸IPããã®æ¥ç¶ã§ã»ãã·ã§ã³ãè·¨ãã¨ã»ãããããTCPã¿ã¤ã ã¹ã¿ã³ãã®å¤ãæ»ãå ´åããã æå¾ã®æ¡ä»¶ãå¾®å¦ã ããTCPã¿ã¤ã ã¹ã¿ã³ãã®å¤ã¨ãã¦ã»ãããããå¤ã¯èµ·åæã èµ·ç®æã«ãã¦ãããã¨å®è£ ã«ãã£ã¦åæå¤
ã©ã³ãã³ã°
ãç¥ãã
ã©ã³ãã³ã°
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}