åå®å¨ç¨åºæçåå
³é®è¿ç¨ç¸å½ä¸ä¸è®¡å
¥ç¼åçæªæ½çæ¡ä»¶ä¸ï¼è¯»åä»»ä½ç±»åçæ°æ®é½æ²¡æç´æ¥æä½æ件æ¥çå¿«ï¼ä¸è®ºMSYQLè¿ç¨å¦ä½ï¼æåé½è¦å°ç£çä¸å»è¯»è¿ä¸ªâæ件âï¼è®°å½åå¨åºçæï¼ï¼æ以å½ç¶è¿ä¸åçåææ¯åªè¯» å
容ï¼æ å
³ä»»ä½æåºææ¥æ¾æä½ã
å¨æç½ç«ä¸è¬é½æ¯ç¨æ°æ®åºæ¥åå¨ä¿¡æ¯ï¼å¦æä¿¡æ¯çåæ¶æ§è¦æ±ä¸é« å¯ä»¥å å
¥ç¼åæ¥åå°é¢ç¹è¯»åæ°æ®åºã
两ç§æ¹å¼ä¸è¬é½æ¯æï¼ä½æ¯ç»è¿æä½ç³»ç»ç´æ¥æä½ç£ççæ§è½è¾é«ï¼èä¸å®å
¨æ§ä¹è¾é«ï¼æ°æ®åºç³»ä¸çç£çæ§è½ä¸ç´é½æ¯ç¶é¢ï¼å¤§åæ°æ®åºä¸è¬åºäºunix
ç³»ç»ï¼å½ç¶winä¸ä¹æï¼ä¸å¸¸ç¨åºä¸ºwinçä¸å¯é æ§ï¼unixä¸ï¼ç¨çæ¯è£¸è®¾å¤raw设å¤ï¼å°±æ¯æ²¡æå å·¥è¿ç设å¤ï¼unixä¸çç£çååºå±äºç¹æ®è®¾å¤ï¼
以æ件形å¼ç»ä¸ç®¡çï¼ï¼ç±dbmsç´æ¥ç®¡çï¼ä¸éè¿æä½ç³»ç»ï¼æçå¾é«ï¼å¯é æ§ä¹é«ï¼å 为ç£çï¼cacheåå
åé½æ¯èªå·±ç®¡ççï¼å¤§åæ°æ®åºç³»ç»
db2ï¼oracalï¼informixï¼ä¸å¤ªæµè¡äºï¼ï¼mssqlç®ä¸ä¸å¤§åæ°æ®åºç³»ç»ã
1ãç´æ¥è¯»æ件ç¸æ¯æ°æ®åºæ¥è¯¢æçæ´èä¸ç¹ï¼èä¸æä¸è¿æ²¡ç®ä¸è¿æ¥åæå¼çæ¶é´ã
2ãä¸æ¬¡è¯»åçå
容è¶å¤§ï¼ç´æ¥è¯»æ件çä¼å¿ä¼è¶æ
æ¾ï¼è¯»æ件æ¶é´é½æ¯å°å¹
å¢é¿ï¼è¿è·æ件åå¨çè¿ç»æ§åç°å¤§å°çæå
³ç³»ï¼ï¼è¿ä¸ªç»ææ°æ°è·ä¹¦çé¢æçç¸åï¼è¯´æMYSQL对æ´å¤§æ件读åå¯è½åéå äºæäºæ
ä½ï¼ä¸¤æ¬¡æ¶é´å¢é¿äºè¿30%ï¼ï¼å¦æåªæ¯å纯çèµå¼è½¬æ¢åºè¯¥æ¯å·®å¼åå°æ对ã
3ãåæ件åINSERTå ä¹ä¸ç¨æµè¯å°±å¯ä»¥æ¨æµåºï¼æ°æ®åºæçåªä¼æ´å·®ã
4ãå¾å°çé
ç½®æ件å¦æä¸éè¦ä½¿ç¨å°æ°æ®åºç¹æ§ï¼æ´å éåæ¾å°ç¬ç«æ件éååï¼æ éåç¬å建æ°æ®è¡¨æè®°å½ï¼å¾å¤§çæ件æ¯å¦å¾çãé³ä¹çéç¨æ件åå¨æ´ä¸ºæ¹ä¾¿ï¼åªæè·¯å¾æ缩ç¥å¾çç´¢å¼ä¿¡æ¯æ¾å°æ°æ®åºéæ´åçä¸äºã
5ãPHPä¸å¦æåªæ¯è¯»æ件ï¼file_get_contentsæ¯fopenãfcloseæ´ææçï¼ä¸å
æ¬å¤æåå¨è¿ä¸ªå½æ°æ¶é´ä¼å°3ç§å·¦å³ã
6ãfetch_rowåfetch_objectåºè¯¥æ¯ä»fetch_array转æ¢èæ¥çï¼ä¹¦ç没çè¿PHPçæºç ï¼åä»æ§è¡ä¸å°±å¯ä»¥è¯´æfetch_arrayæçæ´é«ï¼è¿è·ç½ä¸ç说æ³ä¼¼ä¹ç¸åã
ç£ç读åä¸æ°æ®åºçå
³ç³»ï¼
ä¸ ç£çç©çç»æ
(1) ççï¼ç¡¬çççä½ç±å¤ä¸ªççå å¨ä¸èµ·ææã
å¨ç¡¬çåºåæ¶ï¼ç±ç¡¬çç产åå®æäºä½çº§æ ¼å¼å(ç©çæ ¼å¼å)ï¼ä½ç¨æ¯å°ç©ºç½ççç(Platter)åå为ä¸ä¸ªä¸ªååå¿ãä¸ååå¾çç£é
(Track)ï¼è¿å°ç£éåå为è¥å¹²ä¸ªæåº(Sector)ï¼æ¯ä¸ªæåºå¯åå¨128Ã2çN次æ¹ï¼N=0.1.2.3ï¼åèä¿¡æ¯ï¼é»è®¤æ¯ä¸ªæåºç大å°ä¸º
512åèãé常使ç¨è
æ éåè¿è¡ä½çº§æ ¼å¼åæä½ã
(2) ç£å¤´ï¼æ¯å¼ çççæ£å两é¢åæä¸ä¸ªç£å¤´ã
(3) 主轴ï¼ææç£çé½ç±ä¸»è½´çµæºå¸¦å¨æ转ã
(4) æ§å¶éæçµè·¯æ¿ï¼å¤æï¼ä¸é¢è¿æROMï¼å
æ软件系ç»ï¼ãCacheçã
äº ç£çå¦ä½å®æå次IOæä½
(1) 寻é
å½æ§å¶å¨å¯¹ç£çååºä¸ä¸ªIOæä½å½ä»¤çæ¶åï¼ç£çç驱å¨è(Actuator
Arm)带å¨ç£å¤´(Head)离å¼çéåº(Landing
Zoneï¼ä½äºå
å没ææ°æ®çåºå)ï¼ç§»å¨å°è¦æä½çåå§æ°æ®åæå¨çç£é(Track)çæ£ä¸æ¹ï¼è¿ä¸ªè¿ç¨è¢«ç§°ä¸ºå¯»é(Seeking)ï¼å¯¹åºæ¶èçæ¶
é´è¢«ç§°ä¸ºå¯»éæ¶é´(Seek Time)ï¼
(2) æ转延è¿
æ¾å°å¯¹åºç£éè¿ä¸è½é©¬ä¸è¯»åæ°æ®ï¼è¿æ¶åç£å¤´è¦çå°ç£ççç(Platter)æ转å°åå§æ°æ®åæå¨çæåº(Sector)è½å¨è¯»åç£å¤´æ£ä¸æ¹ä¹åæè½å¼å§è¯»åæ°æ®ï¼å¨è¿ä¸ªçå¾
ççæ转å°å¯æä½æåºçè¿ç¨ä¸æ¶èçæ¶é´ç§°ä¸ºæ转延æ¶(Rotational Delay)ï¼
(3) æ°æ®ä¼ é
æ¥ä¸æ¥å°±éççççæ转ï¼ç£å¤´ä¸æç读/åç¸åºçæ°æ®åï¼ç´å°å®æè¿æ¬¡IOæéè¦æä½çå
¨é¨æ°æ®ï¼è¿ä¸ªè¿ç¨ç§°ä¸ºæ°æ®ä¼ é(Data Transfer)ï¼å¯¹åºçæ¶é´ç§°ä¸ºä¼ éæ¶é´(Transfer Time)ãå®æè¿ä¸ä¸ªæ¥éª¤ä¹åå次IOæä½ä¹å°±å®æäºã
æ ¹æ®ç£çå次IOæä½çè¿ç¨ï¼å¯ä»¥åç°ï¼
å次IOæ¶é´ = 寻éæ¶é´ + æè½¬å»¶è¿ + ä¼ éæ¶é´
è¿èæ¨ç®IOPS(IO per second)çå
¬å¼ä¸ºï¼
IOPS = 1000ms/å次IOæ¶é´
ä¸ ç£çIOPS计ç®
ä¸åç£çï¼å®ç寻éæ¶é´ï¼æ转延è¿ï¼æ°æ®ä¼ éæéçæ¶é´åæ¯å¤å°ï¼
1. 寻éæ¶é´
èèå°è¢«è¯»åçæ°æ®å¯è½å¨ç£ççä»»æä¸ä¸ªç£éï¼æ¢æå¯è½å¨ç£ççæå
åï¼å¯»éæ¶é´æçï¼ï¼ä¹å¯è½å¨ç£ççæå¤åï¼å¯»éæ¶é´æé¿ï¼ï¼æ以å¨è®¡ç®ä¸æ们åªèèå¹³å寻éæ¶é´ã
å¨è´ä¹°ç£çæ¶ï¼è¯¥åæ°é½ææ æï¼ç®åçSATA/SASç£çï¼æ转éä¸åï¼å¯»éæ¶é´ä¸åï¼ä¸è¿é常é½å¨10ms以ä¸ï¼
3. ä¼ éæ¶é´2. æ转延æ¶
å寻éä¸æ ·ï¼å½ç£å¤´å®ä½å°ç£éä¹åæå¯è½æ£å¥½å¨è¦è¯»åæåºä¹ä¸ï¼è¿æ¶åæ¯ä¸éè¦é¢å¤ç延æ¶å°±å¯ä»¥ç«å»è¯»åå°æ°æ®ï¼ä½æ¯æåçæ
åµç¡®å®è¦ç£çæ转æ´æ´
ä¸åä¹åç£å¤´æè½è¯»åå°æ°æ®ï¼æ以è¿éä¹èèçæ¯å¹³åæ转延æ¶ï¼å¯¹äº15000rpmçç£çå°±æ¯(60s/15000)*(1/2) = 2msã
(1) ç£çä¼ è¾éç
ç£çä¼ è¾éçå两ç§ï¼å
é¨ä¼ è¾éç(Internal Transfer Rate)ï¼å¤é¨ä¼ è¾éç(External Transfer Rate)ã
å
é¨ä¼ è¾éç(Internal Transfer Rate)ï¼æ¯æç£å¤´ä¸ç¡¬çç¼åä¹é´çæ°æ®ä¼ è¾éçï¼ç®åç说就æ¯ç¡¬çç£å¤´å°æ°æ®ä»ççä¸è¯»ååºæ¥ï¼ç¶ååå¨å¨ç¼åå
çé度ã
çæ³çå
é¨ä¼ è¾éçä¸åå¨å¯»éï¼æ转延æ¶ï¼å°±ä¸ç´å¨åä¸ä¸ªç£éä¸è¯»æ°æ®å¹¶ä¼ å°ç¼åï¼æ¾ç¶è¿æ¯ä¸å¯è½çï¼å 为å个ç£éçåå¨ç©ºé´æ¯æéçï¼
å®é
çå
é¨ä¼ è¾éçå
å«äºå¯»éåæ转延æ¶ï¼ç®å家ç¨ç£çï¼ç¨³å®çå
é¨ä¼ è¾éçä¸è¬å¨30MB/så°45MB/sä¹é´(æå¡å¨ç£çï¼åºè¯¥ä¼æ´é«)ã
å¤é¨ä¼ è¾éç(External Transfer Rate)ï¼æ¯æ硬çç¼ååç³»ç»æ»çº¿ä¹é´çæ°æ®ä¼ è¾éçï¼ä¹å°±æ¯è®¡ç®æºéè¿ç¡¬çæ¥å£ä»ç¼åä¸å°æ°æ®è¯»åºäº¤ç»ç¸åºç硬çæ§å¶å¨çéçã
硬çååå¨ç¡¬çåæ°ä¸ï¼é常ä¹ä¼ç»åºä¸ä¸ªæå¤§ä¼ è¾éçï¼æ¯å¦ç°å¨SATA3.0ç6Gbit/sï¼æ¢ç®ä¸ä¸å°±æ¯6*1024/8ï¼768MB/sï¼é常æçæ¯ç¡¬çæ¥å£å¯¹å¤çæå¤§ä¼ è¾éçï¼å½ç¶å®é
使ç¨ä¸æ¯è¾¾ä¸å°è¿ä¸ªå¼çã
è¿é计ç®IOPSï¼ä¿å®éæ©å®é
å
é¨ä¼ è¾éçï¼ä»¥40M/s为ä¾ã
(2) å次IOæä½ç大å°
æäºä¼ ééçï¼è¿è¦ç¥éå次IOæä½ç大å°(IO Chunk Size)ï¼æå¯ä»¥ç®åºå次IOçä¼ éæ¶é´ãé£ä¹ç£çå次IOç大å°æ¯å¤å°ï¼çæ¡æ¯ï¼ä¸ç¡®å®ã
æä½ç³»ç»ä¸ºäºæé« IOçæ§è½èå¼å
¥äºæ件系ç»ç¼å(File System Cache)ï¼ç³»ç»ä¼æ ¹æ®è¯·æ±æ°æ®çæ
åµå°å¤ä¸ªæ¥èªIOç请æ±å
æ¾å¨ç¼åéé¢ï¼ç¶ååä¸æ¬¡æ§çæ交ç»ç£çï¼ä¹å°±æ¯è¯´å¯¹äºæ°æ®åºååºçå¤ä¸ª8Kæ°æ®åç读æä½æå¯è½æ¾å¨ä¸ä¸ªç£ç读IOéå°±å¤çäºã
è¿æï¼æäºåå¨ç³»ç»ä¹æ¯æä¾äºç¼åï¼Cacheï¼ï¼æ¥æ¶å°æä½ç³»ç»çIO请æ±ä¹åä¹æ¯ä¼å°å¤ä¸ªæä½ç³»ç»ç IO请æ±å并æä¸ä¸ªæ¥å¤çã
ä¸ç®¡æ¯æä½ç³»ç»å±é¢çç¼åè¿æ¯ç£çæ§å¶å¨å±é¢çç¼åï¼ç®çé½åªæä¸ä¸ªï¼æé«æ°æ®è¯»åçæçãå æ¤æ¯æ¬¡åç¬çIOæä½å¤§å°é½æ¯ä¸ä¸æ ·çï¼å®ä¸»è¦åå³äºç³»ç»å¯¹äºæ°æ®è¯»åæççå¤æãè¿é以SQL Serveræ°æ®åºçæ°æ®é¡µå¤§å°ä¸ºä¾ï¼8Kã
(3) ä¼ éæ¶é´
ä¼ éæ¶é´ = IO Chunk Size/Internal Transfer Rate = 8k/40M/s = 0.2ms
å¯ä»¥åç°ï¼
(3.1) å¦æIO Chunk Size大çè¯ï¼ä¼ éæ¶é´ä¼å大ï¼ä»è导è´IOPSåå°ï¼
(3.2) æºæ¢°ç£çç主è¦è¯»åææ¬ï¼é½è±å¨äºå¯»åæ¶é´ä¸ï¼å³ï¼å¯»éæ¶é´ + æ转延è¿ï¼ä¹å°±æ¯ç£çèçæå¨ï¼åç£ççæ转延è¿ã
(3.3) å¦æç²ç¥ç计ç®IOPSï¼å¯ä»¥å¿½ç¥ä¼ éæ¶é´ï¼1000ms/(寻éæ¶é´ + æ转延è¿)å³å¯ã
4. IOPS计ç®ç¤ºä¾
以15000rpm为ä¾ï¼
(1) å次IOæ¶é´
å次IOæ¶é´ = 寻éæ¶é´ + æè½¬å»¶è¿ + ä¼ éæ¶é´ = 3ms + 2ms + 0.2 ms = 5.2 ms
(2) IOPS
IOPS = 1000ms/å次IOæ¶é´ = 1000ms/5.2ms = 192 (次)
è¿é计ç®çæ¯ååç£ççéæºè®¿é®IOPSã
èèä¸ç§æ端çæ
åµï¼å¦æç£çå
¨é¨ä¸ºé¡ºåºè®¿é®ï¼é£ä¹å°±å¯ä»¥å¿½ç¥ï¼å¯»éæ¶é´ + æè½¬å»¶è¿ çæ¶é¿ï¼IOPSç计ç®å
¬å¼å°±å为ï¼IOPS = 1000ms/ä¼ éæ¶é´
IOPS = 1000ms/ä¼ éæ¶é´= 1000ms/0.2ms = 5000 (次)
æ¾ç¶è¿ç§æ端çæ
åµå¤ªè¿çæ³ï¼æ¯ç«æ¯ä¸ªç£éç空é´æ¯æéçï¼å¯»éæ¶é´ + æè½¬å»¶è¿ æ¶é¿ç¡®å®å¯ä»¥åå°ï¼ä¸è¿æ¯æ æ³å®å
¨é¿å
çã
å æ°æ®åºä¸çç£ç读å
1. éæºè®¿é®åè¿ç»è®¿é®
(1) éæºè®¿é®(Random Access)
æçæ¯æ¬æ¬¡IOæç»åºçæåºå°ååä¸æ¬¡IOç»åºæåºå°åç¸å·®æ¯è¾å¤§ï¼è¿æ ·çè¯ç£å¤´å¨ä¸¤æ¬¡IOæä½ä¹é´éè¦ä½æ¯è¾å¤§ç移å¨å¨ä½æè½éæ°å¼å§è¯»/åæ°æ®ã
(2) è¿ç»è®¿é®(Sequential Access)
ç¸åçï¼å¦æå½æ¬¡IOç»åºçæåºå°åä¸ä¸æ¬¡IOç»æçæåºå°åä¸è´æè
æ¯æ¥è¿çè¯ï¼é£ç£å¤´å°±è½å¾å¿«çå¼å§è¿æ¬¡IOæä½ï¼è¿æ ·çå¤ä¸ªIOæä½ç§°ä¸ºè¿ç»è®¿é®ã
(3) 以SQL Serveræ°æ®åºä¸ºä¾
æ°æ®æ件ï¼SQL Serverç»ä¸åºä¸ç对象ï¼æ¯ä»¥extent(8*8k)为åä½è¿è¡ç©ºé´åé
çï¼æ°æ®åæ¾æ¯å¾éæºçï¼åªä¸ªæ°æ®é¡µæ空é´ï¼å°±åå¨åªéï¼é¤ééè¿æ件ç»ç»æ¯ä¸ªè¡¨é¢åé
足å¤å¤§çãåç¬ä½¿ç¨çæ件ï¼å¦åä¸è½ä¿è¯æ°æ®çè¿ç»æ§ï¼é常为éæºè®¿é®ã
å¦å¤åªæèéç´¢å¼è¡¨ï¼ä¹åªæ¯é»è¾ä¸çè¿ç»ï¼å¹¶ä¸æ¯ç©çä¸ã
æ¥å¿æ件ï¼ç±äºæVLFçåå¨ï¼æ¥å¿ç读åç论ä¸ä¸ºè¿ç»è®¿é®ï¼ä½å¦ææ¥å¿æ件设置为èªå¨å¢é¿ï¼ä¸å¢éä¸å¤§ï¼VLFå°±ä¼å¾å¤å¾å°ï¼é£ä¹å°±ä¹å¹¶ä¸æ¯ä¸¥æ ¼çè¿ç»è®¿é®äºã
2. 顺åºIOå并åIO
(1) 顺åºIO模å¼(Queue Mode)
ç£çæ§å¶å¨å¯è½ä¼ä¸æ¬¡å¯¹ç£çç»ååºä¸è¿ä¸²çIOå½ä»¤ï¼å¦æç£çç»ä¸æ¬¡åªè½æ§è¡ä¸ä¸ªIOå½ä»¤ï¼ç§°ä¸ºé¡ºåºIOï¼
(2) 并åIO模å¼(Burst Mode)
å½ç£çç»è½åæ¶æ§è¡å¤ä¸ªIOå½ä»¤æ¶ï¼ç§°ä¸ºå¹¶åIOã并åIOåªè½åçå¨ç±å¤ä¸ªç£çç»æçç£çç»ä¸ï¼ååç£çåªè½ä¸æ¬¡å¤çä¸ä¸ªIOå½ä»¤ã
(3) 以SQL Serveræ°æ®åºä¸ºä¾
æçæ¶åï¼å°½ç®¡ç£ççIOPS(Disk Transfers/sec)è¿æ²¡æ太大ï¼ä½æ¯åç°æ°æ®åºåºç°IOçå¾
ï¼ä¸ºä»ä¹ï¼é常æ¯å 为æäºç£ç请æ±éåï¼æè¿å¤çIO请æ±å 积ã
ç£çç请æ±éååç¹å¿ç¨åº¦ï¼éè¿ä»¥ä¸æ§è½è®¡æ°å¨æ¥çï¼
LogicalDisk/Avg.Disk Queue Length
LogicalDisk/Current Disk Queue Length
LogicalDisk/%Disk Time
è¿ç§æ
åµä¸ï¼å¯ä»¥åçæ¯ï¼
(1) ç®åä¸å¡é»è¾ï¼åå°IO请æ±æ°ï¼
(2) åä¸ä¸ªå®ä¾ä¸ï¼å¤ä¸ªæ°æ®åºè¿ç§»çä¸åå®ä¾ä¸ï¼
(3) åä¸ä¸ªæ°æ®åºçæ¥å¿ï¼æ°æ®æ件å离å°ä¸åçåå¨åå
ï¼
(4) åå©HAçç¥ï¼å读åæä½çå离ã
3. IOPSåååé(throughput)
(1) IOPS
IOPSå³æ¯ç§è¿è¡è¯»åï¼I/Oï¼æä½ç次æ°ãå¨è®¡ç®ä¼ éæ¶é´æ¶ï¼ææå°ï¼å¦æIO Chunk Size大çè¯ï¼é£ä¹IOPSä¼åå°ï¼å设以100M为åä½è¯»åæ°æ®ï¼é£ä¹IOPSå°±ä¼å¾å°ã
(2) ååé(throughput)
ååéææ¯ç§å¯ä»¥è¯»åçåèæ°ãåæ ·å设以100M为åä½è¯»åæ°æ®ï¼å°½ç®¡IOPSå¾å°ï¼ä½æ¯æ¯ç§è¯»åäºN*100Mçæ°æ®ï¼ååé并ä¸å°ã
(3) 以SQL Serveræ°æ®åºä¸ºä¾
对äºOLTPçç³»ç»ï¼ç»å¸¸è¯»åå°åæ°æ®ï¼å¤ä¸ºéæºè®¿é®ï¼ç¨IOPSæ¥è¡¡é读åæ§è½ï¼
对äºæ°æ®ä»åºï¼æ¥å¿æ件ï¼ç»å¸¸è¯»å大åæ°æ®ï¼å¤ä¸ºé¡ºåºè®¿é®ï¼ç¨ååéæ¥è¡¡é读åæ§è½ã
ç£çå½åçIOPSï¼éè¿ä»¥ä¸æ§è½è®¡æ°å¨æ¥çï¼
LogicalDisk/Disk Transfers/sec
LogicalDisk/Disk Reads/sec
LogicalDisk/Disk Writes/sec
ç£çå½åçååéï¼éè¿ä»¥ä¸æ§è½è®¡æ°å¨æ¥çï¼
LogicalDisk/Disk Bytes/sec
LogicalDisk/Disk Read Bytes/sec
LogicalDisk/Disk Write Bytes/sec
温馨提示:答案为网友推荐,仅供参考