èšäºã®ç¿»èš³ã¯ã³ãŒã¹éå§åå€ã«æºåãããŸãã .

ã«ãŒãã« ãã¥ãŒãã³ã°ã«é¢ãã Gluster ã®æšå¥šäºé ãšãã®å¿ èŠæ§ã«ã€ããŠãæã çåãçããŸãã
ãã®ãããªããŒãºã¯ãã£ãã«çºçããŸãããã»ãšãã©ã®ã¯ãŒã¯ããŒãã§ã¯ãã³ã¢ã¯éåžžã«åªããããã©ãŒãã³ã¹ãçºæ®ããŸãããã ããæ¬ ç¹ããããŸããæŽå²çã«ãã³ã¢ã¯ Linux æ©äŒãããã°ãããã©ãŒãã³ã¹åäžã®äž»ãªææ®µãšããŠã®ãã£ãã·ã¥ãå«ããç©æ¥µçã«å€§éã®ã¡ã¢ãªãæ¶è²»ããã
ã»ãšãã©ã®å Žåãããã§åé¡ãªãåäœããŸãããè² è·ã倧ããå Žåã«ã¯åé¡ãçºçããå¯èœæ§ããããŸãã
åœç€Ÿã¯ãé«è² è·æã«é床ãäœäžãå§ãã CADãEDA ãªã©ã®ã¡ã¢ãªã倧éã«æ¶è²»ããã·ã¹ãã ã«é¢ããŠè±å¯ãªçµéšãæã£ãŠããŸãããããŠãGluster ã§åé¡ãçºçããããšããããŸããã 1 æ¥ä»¥äžã«ããã£ãŠã¡ã¢ãªäœ¿çšéãšãã£ã¹ã¯åŸ æ©æéãæ³šææ·±ãç£èŠããçµæãéè² è·ãèšå€§ãª iowaitãã«ãŒãã« oopsãããªãŒãºãªã©ã®åé¡ãçºçããŸããã
ãã®èšäºã¯ãããŸããŸãªç¶æ³ã§å®è¡ããã倿°ã®ãã©ã¡ãŒã¿èª¿æŽå®éšã®çµæã§ãããããã®ãã©ã¡ãŒã¿ã®ãããã§ãå šäœçãªå¿çæ§ãåäžããã ãã§ãªããã¯ã©ã¹ã¿ãŒã®åäœãå€§å¹ ã«å®å®ããŸããã
ã¡ã¢ãªãæ§æããå Žåãæåã«ç¢ºèªããå¿ èŠãããã®ã¯ä»®æ³ã¡ã¢ãª (VM) ãµãã·ã¹ãã ã§ãããã®ãµãã·ã¹ãã ã«ã¯å€æ°ã®ãªãã·ã§ã³ããããæ··ä¹±ããå¯èœæ§ããããŸãã
vm.swappiness
ãã©ã¡ãŒã¿ãŒ vm.swappiness RAM ãšæ¯èŒããŠã«ãŒãã«ãã¹ã¯ããã䜿çšããéãæ±ºå®ããŸãããœãŒã¹ ã³ãŒãã§ã¯ããããããããã¡ã¢ãªãçãåŸåããšãå®çŸ©ãããŠããŸãã swappiness å€ãé«ããšããããšã¯ãã«ãŒãã«ãããããããããŒãžãã¹ã¯ããã¢ãŠãããåŸåã匷ããªãããšãæå³ããŸãã swappiness å€ãäœããšããããšã¯ãã®éã§ãããã«ãŒãã«ãã¡ã¢ãªããã¹ã¯ããã¢ãŠãããããŒãžæ°ãå°ãªããªããŸããã€ãŸãã䟡å€ãé«ããã°é«ãã»ã© vm.swappinessã·ã¹ãã ãã¹ã¯ããã䜿çšããé »åºŠãé«ããªããŸãã
èšå€§ãªããŒã¿ãããã¯ã RAM ã«ããŒãããã³ã¢ã³ããŒããããããã倧éã®ã¹ã¯ããã®äœ¿çšã¯æãŸãããããŸãããå€ãã®äººã¯ swapiness ãé«ãèšå®ãã¹ãã ãšäž»åŒµããŸãããç§ã®çµéšã§ã¯ 0 ã«èšå®ãããšããã©ãŒãã³ã¹ãåäžããŸãã
詳现ã¯ãã¡ããã芧ãã ãã -
ãã ãããããã®èšå®ã¯ãç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ããã¹ãããåŸã«ã®ã¿ãæ éã«äœ¿çšããå¿ èŠããããŸããé«è² è·ã®ã¹ããªãŒãã³ã° ã¢ããªã±ãŒã·ã§ã³ã®å Žåããã®ãã©ã¡ãŒã¿ã¯ã0ãã«èšå®ããå¿ èŠããããŸãã ã0ãã«å€æŽãããšã·ã¹ãã ã®å¿çæ§ãåäžããŸãã
vm.vfs_cache_pressure
ãã®ãã©ã¡ãŒã¿ã¯ããã£ã¬ã¯ã㪠ãªããžã§ã¯ããš inode ããã£ãã·ã¥ããããã«ã«ãŒãã«ãæ¶è²»ããã¡ã¢ãªãå¶åŸ¡ããŸãã
ããã©ã«ãå€ã® 100 ã§ã¯ãã«ãŒãã«ã¯ããŒãžãã£ãã·ã¥ãšã¹ã¯ãããã£ãã·ã¥ã«é¢ã㊠dentry ãš inode ãã£ãã·ã¥ããå ¬å¹³ã«ãè§£æŸããããšããŸãã vfs_cache_pressure ãæžãããšãã«ãŒãã«ã¯ dentry ããã³ inode ãã£ãã·ã¥ãä¿æããããã«ãªããŸããå€ãã0ãã®å Žåãã¡ã¢ãªäžè¶³ã®ããã«ãŒãã«ã¯ dentry ããã³ inode ãã£ãã·ã¥ããã©ãã·ã¥ããªããããã¡ã¢ãªäžè¶³ãšã©ãŒãç°¡åã«çºçããå¯èœæ§ããããŸãã vfs_cache_pressure ã 100 以äžã«å¢ãããšãã«ãŒãã«ã¯ dentry ãš inode ã®ã¢ã³ããŒããåªå ããããã«ãªããŸãã
GlusterFS ã䜿çšããå Žåã倧éã®ããŒã¿ãšå€æ°ã®å°ããªãã¡ã€ã«ãæã€å€ãã®ãŠãŒã¶ãŒã¯ãinode/dentry ãã£ãã·ã¥ã«ãããµãŒããŒäžã®å€§éã® RAM ãç°¡åã«æ¶è²»ããå¯èœæ§ããããŸãããã®çµæãã«ãŒãã«ã 40 GB ã®ã¡ã¢ãªãæã€ã·ã¹ãã äžã§ããŒã¿æ§é ãåŠçããå¿ èŠããããããããã©ãŒãã³ã¹ãäœäžããå¯èœæ§ããããŸãããã®ãã©ã¡ãŒã¿ã 100 以äžã«èšå®ãããšãå€ãã®ãŠãŒã¶ãŒãããå ¬å¹³ãªãã£ãã·ã¥ãå®çŸããã«ãŒãã«ã®å¿çæ§ãåäžãããããšãã§ããŸãã
vm.dirty_background_ratio ãš vm.dirty_ratio
æåã®ãã©ã¡ãŒã¿ïŒvm.dirty_background_ratio) ã¯ãããŒã㣠ããŒãžãå«ãã¡ã¢ãªã®å²åãå®çŸ©ããŸãããã®å²åã«éãããšãããŒã㣠ããŒãžã®ãã£ã¹ã¯ãžã®ããã¯ã°ã©ãŠã³ã ãã©ãã·ã¥ãéå§ããå¿
èŠããããŸãããã®å²åã«éãããŸã§ãããŒãžã¯ãã£ã¹ã¯ã«ãã©ãã·ã¥ãããŸããããªã»ãããéå§ããããšãå®è¡äžã®ããã»ã¹ãäžæããããšãªããããã¯ã°ã©ãŠã³ãã§å®è¡ãããŸãã
2çªç®ã®ãã©ã¡ãŒã¿ïŒvm.dirty_ratio) ã¯ã匷å¶ãã©ãã·ã¥ãçºçããåã«ããŒã㣠ããŒãžãå æã§ããã¡ã¢ãªã®å²åãæ±ºå®ããŸãããã®ãããå€ã«éãããšããã¹ãŠã®ããã»ã¹ãåæïŒãããã¯ïŒãããèŠæ±ãã I/O æäœãå®éã«å®äºããŠããŒã¿ããã£ã¹ã¯äžã«ä¿åããããŸã§å®è¡ãç¶è¡ã§ããªããªããŸãã I/O è² è·ã倧ããå ŽåãããŒã¿ ãã£ãã·ã¥ããªããI/O ãå®è¡ãããã¹ãŠã®ããã»ã¹ã I/O ãåŸ
æ©ããŠãããã¯ããããããåé¡ãçºçããŸãããã®çµæã倿°ã®ããã»ã¹ãããªãŒãºããè² è·ãé«ããªããã·ã¹ãã ã®åäœãäžå®å®ã«ãªããããã©ãŒãã³ã¹ãäœäžããŸãã
ãããã®ãã©ã¡ãŒã¿ã®å€ãæžãããšãããŒã¿ããã£ã¹ã¯ã«ãã©ãã·ã¥ãããé »åºŠãé«ãŸããRAM ã«ä¿åãããªããªããŸããããã¯ãéåžž 45 ïœ 90 GB ã®ããŒãž ãã£ãã·ã¥ããã£ã¹ã¯ã«ãã©ãã·ã¥ããããã³ããšã³ã ã¢ããªã±ãŒã·ã§ã³ã«å€§ããªé å»¶ããããããå šäœçãªå¿çæ§ãšå¯Ÿè©±æ§ãäœäžããã¡ã¢ãªã倧éã«æ¶è²»ããã·ã¹ãã ã«åœ¹ç«ã¡ãŸãã
"1" > /proc/sys/vm/ããŒãžãã£ãã·ã¥
ããŒãž ãã£ãã·ã¥ã¯ããã¡ã€ã«ãå®è¡å¯èœããã°ã©ã ããã®ããŒã¿ãã€ãŸããã¡ã€ã«ãŸãã¯ããã㯠ããã€ã¹ã®å®éã®å 容ãå«ãããŒãžãä¿åãããã£ãã·ã¥ã§ãããã®ãã£ãã·ã¥ã¯ãã£ã¹ã¯èªã¿åãåæ°ãæžããããã«äœ¿çšãããŸããå€ãã1ãã®å ŽåãRAM ã® 1% ããã£ãã·ã¥ã«äœ¿çšãããRAM ããããã£ã¹ã¯ããã®èªã¿åãæäœãå€ããªããŸãããã®èšå®ã倿Žããå¿ èŠã¯ãããŸããããããŒãž ãã£ãã·ã¥ã®å¶åŸ¡ã«äžå®ãããå Žåã¯ãããã䜿çšã§ããŸãã
ãç· ãåãã > /sys/block/sdc/queue/scheduler
I/Oã¹ã±ãžã¥ãŒã©ã¯ã«ãŒãã«ã®æ§æèŠçŽ ã§ããã Linuxèªã¿åããã¥ãŒãšæžã蟌ã¿ãã¥ãŒãåŠçããŸããçè«çã«ã¯ãã¹ããŒããªRAIDã³ã³ãããŒã©ã§ã¯ãnoopãã䜿çšããæ¹ãè¯ãã§ãã Linux ã¹ã±ãžã¥ãŒã©ã¯ãã£ã¹ã¯ã®ç©ççãªåœ¢ç¶ã«ã€ããŠäœãç¥ããªãããããã£ã¹ã¯ã®åœ¢ç¶ãããçè§£ããŠããã³ã³ãããŒã©ã«ãªã¯ãšã¹ããã§ããã ãæ©ãåŠçãããæ¹ãå¹ççã§ãããã ããããããã©ã€ã³ããèšå®ããããšã§ããã©ãŒãã³ã¹ãåäžããããã§ããã¹ã±ãžã¥ãŒã©ã«é¢ãã詳现ã¯ãã«ãŒãã«ã®ãœãŒã¹ã³ãŒããåç
§ããŠãã ããã Linux: linux/Documentation/block/*osched.txtããŸããæ··åæäœ (倧éã®æžã蟌ã¿) äžã®èªã¿åãã¹ã«ãŒãããã®åäžã確èªããŸããã
"256" > /sys/block/sdc/queue/nr_requests
ã¹ã±ãžã¥ãŒã©ã«æž¡ãããåã®ãããã¡å ã® I/O èŠæ±ã®æ°ãäžéšã®ã³ã³ãããŒã©ã®å éšãã¥ãŒ ãµã€ãº (queue_depth) ã I/O ã¹ã±ãžã¥ãŒã©ã® nr_requests ããã倧ãããããI/O ã¹ã±ãžã¥ãŒã©ãèŠæ±ãæ£ããåªå é äœä»ãããŠããŒãžã§ããå¯èœæ§ãã»ãšãã©ãããŸãããæéããã³ CFQ ã¹ã±ãžã¥ãŒã©ã®å Žåãnr_requests ãã³ã³ãããŒã©ã®å éšãã¥ãŒã® 2 åã§ããå Žåã«é©ããŠããŸããã¯ãšãªãçµã¿åãããŠäžŠã¹æ¿ãããšãè² è·ãé«ãå Žåã§ããã©ã³ããŒã®å¿çæ§ãåäžããŸãã
echo "16" > /proc/sys/vm/page-cluster
ããŒãž ã¯ã©ã¹ã¿ãŒ ãã©ã¡ãŒã¿ã¯ãäžåºŠã«ã¹ã¯ããã«æžã蟌ãŸããããŒãžæ°ãå¶åŸ¡ããŸããäžèšã®äŸã§ã¯ãRAID ã¹ãã©ã€ã ãµã€ãº 16 KB ã«åãããŠå€ãã64ãã«èšå®ãããŠããŸãããã㯠swappiness=0 ã§ã¯æå³ããããŸããããswappiness ã 10 ãŸã㯠20 ã«èšå®ãããšãRAID ã¹ãã©ã€ã ãµã€ãºã 64 KB ã®ãšãã«ãã®å€ã䜿çšãããšåœ¹ç«ã¡ãŸãã
ãããã¯ããã€ã¹ --setra 4096 /dev/<éçºè
å> (-sdbãhdcããŸã㯠dev_mapper)
å€ãã® RAID ã³ã³ãããŒã©ã®ããã©ã«ãã®ããã㯠ããã€ã¹èšå®ã§ã¯ãããã©ãŒãã³ã¹ãèããäœäžããããšããããããŸããäžèšã®ãªãã·ã§ã³ã远å ãããšã4096*512 ãã€ãã®ã»ã¯ã¿ãŒã®å èªã¿ãæ§æãããŸããå°ãªããšãã¹ããªãŒãã³ã°æäœã®å Žåãã«ãŒãã«ã I/O ãæºåããæéäžã«ãã£ã¹ã¯äžã®ãã£ãã·ã¥ãå èªã¿ã§åããããšã§é床ãåäžããŸãããã£ãã·ã¥ã«ã¯ã次åèªã¿åããšãã«èŠæ±ãããããŒã¿ãä¿åã§ããŸããå èªã¿ãå€ããããšãæœåšçã«æçšãªãã£ã¹ã¯æéãæ¶è²»ããããããã£ãã·ã¥å€ã§ããŒã¿ãèªã¿èŸŒãŸãããããŠã倧ããªãã¡ã€ã«ã§ã®ã©ã³ãã I/O ã匷å¶çµäºãããå¯èœæ§ããããŸãã
以äžã«ããã¡ã€ã« ã·ã¹ãã ã¬ãã«ã§ã®ãã®ä»ã®æšå¥šäºé ãããã€ã瀺ããŸãããããããŸã ãã¹ããããŠããŸããããã¡ã€ã« ã·ã¹ãã ãã¹ãã©ã€ã ãµã€ãºãšã¢ã¬ã€å ã®ãã£ã¹ã¯ã®æ°ãèªèããŠããããšã確èªããŸããããšãã°ããã㯠5 ã€ã®ãã£ã¹ã¯ (64 ã€ã®ãã£ã¹ã¯ã¯ããªãã£ã«äœ¿çšããããããå®éã«ã¯ XNUMX ã€) ã® XNUMXK ã¹ãã©ã€ã ãµã€ãºãæã€ RAIDXNUMX ã¢ã¬ã€ã§ãããããã®æšå¥šäºé ã¯çè«çãªä»®å®ã«åºã¥ããŠãããRAID ã®å°éå®¶ã«ããããŸããŸãªããã°/èšäºããåéãããŠããŸãã
-> ext4 fs, 5 disks, 64K stripe, units in 4K blocks
mkfs -text4 -E stride=$((64/4))
-> xfs, 5 disks, 64K stripe, units in 512-byte sectors
mkfs -txfs -d sunit=$((64*2)) -d swidth=$((5*64*2))ãã倧ããªãã¡ã€ã«ã®å Žåã¯ãäžèšã®ã¹ãã©ã€ã ãµã€ãºãå¢ããããšãæ€èšããŠãã ããã
èŠåïŒ äžèšã§èª¬æããå 容ã¯ãäžéšã®çš®é¡ã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯éåžžã«äž»èгçãªãã®ã«ãªããŸãããã®èšäºã¯ããŠãŒã¶ãŒãããããã®ã¢ããªã±ãŒã·ã§ã³ãäºåã«ãã¹ãããªãéããæ¹åãä¿èšŒãããã®ã§ã¯ãããŸãããã·ã¹ãã å šäœã®å¿çæ§ãåäžãããå¿ èŠãããå ŽåããŸãã¯çŸåšã®åé¡ã解決ããå Žåã«ã®ã¿äœ¿çšããŠãã ããã
远å ã®è³æ
ç¶ããèªã
åºæïŒ habr.com
