close
Warning:
Can't synchronize with repository "(default)" (Unsupported version control system "svn": /usr/lib/python2.7/dist-packages/libsvn/_fs.so: failed to map segment from shared object: Cannot allocate memory). Look in the Trac log for more information.
- Timestamp:
-
Apr 1, 2010, 2:00:10 AM (14 years ago)
- Author:
-
jazz
- Comment:
-
--
Legend:
- Unmodified
- Added
- Removed
- Modified
-
v11
|
v12
|
|
48 | 48 | * 當然最消極作為是 Data Intensive Job 最好還是在實體機器上跑。 |
49 | 49 | * [注意事項] |
50 | | * 當然不管是當 Data Intensive 計算主機還是 VM Host 主機不可以吃到 SWAP,否則只有一個字:「慘」!!! 這也就代表....記憶體總容量比 CPU 多核重要 (跟上面講的還是一致,多核餵不飽,而且如果記憶體不夠大,更不可能餵飽它) |
| 50 | * 當然不管是當 Data Intensive 計算主機還是 VM Host 主機,都最好不要吃到 SWAP,否則只有一個字:「慘」!!! |
| 51 | * 這也就代表....記憶體總容量比 CPU 多核重要 (跟上面講的還是一致,多核餵不飽,而且如果記憶體不夠大,更不可能餵飽它) |
| 52 | * 先前 Hadoop 叢集常掛也是因為吃到 SWAP,現在 VM Host 雖然沒有掛,但卻造成 VM Client 嚴重的延遲。 |
| 53 | * [研究議題] |
51 | 54 | * 謎之聲:那最好的 "RAM GB / CPU Core 個數" 這個數值會是多少呢 ??? |
| 55 | * Virtual I/O : I/O 如何虛擬化?? 先前看過 PCI Express 有支援 IOMMU ... |
| 56 | * 系統監控、資源排程(Resource Scheduling and Provisioning)、動態負載平衡(Dynamic Load Balance)需要考慮平均 I/O 上限是否超出單台負載。 |
| 57 | |
| 58 | * 那麼 IOWait 有什麼好的解決知道呢?? - [參考文章] [http://www.cppblog.com/go-benny/archive/2008/04/23/47908.html IOWait 相關問題](簡) |
| 59 | {{{ |
| 60 | IOWait 高的一些處理方法 |
| 61 | |
| 62 | 1、如果有使用 RAID,請檢查 RAID 的狀態,例如:是否正在重建或者沒有初始化 |
| 63 | |
| 64 | 2、更換作業系統的核心,最好使用發行版標準的 Linux kernel,因為有比較多的修補 |
| 65 | |
| 66 | 3、檢查 /proc/sys/vm 下面是否可以最佳化 |
| 67 | |
| 68 | 4、是否使用了檔案系統,檔案系統是否有最佳化的選項,比如在 RAID5 上採用 xfs 文件系統時, |
| 69 | 可以調節一些參數優化性能 |
| 70 | |
| 71 | 5、客戶端程式是否產生了過大的壓力,比如磁碟的讀寫效能只有 10MB/s,每個執行緒的讀寫 |
| 72 | 速度為 5 MB/s,那麼如果讀寫執行緒個數為 20 的話,無疑會造成 IOWait 過高 |
| 73 | |
| 74 | 6、查看進程狀態 |
| 75 | ps -eo pid,user,wchan=WIDE-WCHAN-COLUMN -o s,cmd|awk ' $4 ~ /D/ {print $0}' |
| 76 | lsof -p $pid |
| 77 | |
| 78 | 7、使用block_dump |
| 79 | |
| 80 | /etc/init.d/syslog stop |
| 81 | echo 1 > /proc/sys/vm/block_dump |
| 82 | sleep 60 |
| 83 | dmesg | awk '/(READ|WRITE|dirtied)/ {process[$1]++} END {for (x in process) \ |
| 84 | print process[x],x}' |sort -nr |awk '{print $2 " " $1}' | \ |
| 85 | head -n 10 |
| 86 | |
| 87 | echo 0 > /proc/sys/vm/block_dump |
| 88 | /etc/init.d/syslog start |
| 89 | }}} |