@格拉漢姆那裏的樂趣在哪裏?所以我會分享我的經驗,以防其他人到達這裏。我想我的例子是我的'免費'設備達到了授權CPU /內存使用的上限。什麼都沒有真正跳出來,並大喊「你達到了極限」,但很明顯,有些事情是錯誤的。我對結果非常滿意,很高興我堅持下來。我已經學到了很多關於使用微薄的$$資源部署到在線服務器的信息。
一般故障說明開始here.
首先,我很難關閉服務器與$rhc app-force-stop <app_name>
之後,我能夠重新啓動系統,它會正常工作。在我的情況下,我試圖做太多與我支付的服務器的大小(免費!)免費服務器包括512Mb公羊和1千兆存儲。我試圖在那裏運行Node,一個MongoDB和一個Cron盒式磁帶。另外,我有大量的異步輸入/輸出,並建立了相當大的堆棧。後視,不聰明。
錯誤檢測並不容易。我沒有從日誌文件中學到任何東西。通常,當出現問題時,他們只是停止錄音。
有11項測試要做。首先通過SSH和您的命令行工具登錄到服務器。請注意,沒有什麼神奇的「你搞砸了這裏的消息」你必須看看你的使用情況,並將其與你的授權使用水平進行比較。所以是的,這花了我一段時間,但我記錄了我的筆記。這裏是與他人分享的好地方。這次練習我學到了很多東西。祝你好運。 (哦,在我的情況下,我刪除了cron墨盒和mongodb墨盒,我在mlab.com上託管數據庫,從我的其他項目中可以訪問該數據庫。)對我有利。 (結果應該是零......)
oo-cgroup-read memory.failcnt // my results --> 160031
oo-cgroup-read memory.memsw.failcnt // my resluts --> 8572
2)檢查磁盤配額
[xyz-abc.rhcloud.com 5xxx3]\> quota -s
Disk quotas for user 5xxx3 (uid 3488):
Filesystem blocks quota limit grace files quota limit grace
/dev/mapper/EBSStore01-user_home01
608M 0 1024M 12664 0 80000
3)檢查您的實際磁盤使用情況。 (DU在人類可讀的格式(目錄(-s)-h的=磁盤使用 薩姆:字節,千字節,兆字節,技嘉,TB的和拍字節):)
du -sh ~
du: cannot read directory `/var/lib/openshift/5xxx3/.tmp': Permission denied
du: cannot read directory `/var/lib/openshift/5xxx3/.sandbox': Permission denied
du: cannot read directory `/var/lib/openshift/5xxx3/.ssh': Permission denied
du: cannot read directory `/var/lib/openshift/5xxx3/.gearstats': Permission denied
607M /var/lib/openshift/5xxx3/
4)名單打開的文件(lsof的是一個含有「列表打開文件」的命令,在許多類Unix系統中用於報告所有打開的 文件列表以及打開它們的進程。-n不解析主機名(不支持DNS)-P不支持解決端口 名(名單端口號,而不是它的名字)。)
lsof -n -P
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mongod 471639 3488 11u IPv4 423798423 0t0 TCP 127.x.y.z:27017 (LISTEN)
node 475151 3488 10u IPv4 423815802 0t0 TCP 127.x.y.z:8080 (LISTEN)
5)顯示頂部CPU密集型進程(上提供(經常刷新)當前正在運行的大部分CPU密集型進程。你不需要在 包括一個 - 之前的選項。 -b以批處理模式運行;不要接受命令行輸入。用於將 輸出發送到其他命令或文件。 -n num更新顯示次數,然後退出。)
top -b -n 1
top - 00:48:37 up 13 days, 23:52, 0 users, load average: 2.91, 2.27, 2.09
Tasks: 13 total, 1 running, 12 sleeping, 0 stopped, 0 zombie
Cpu(s): 11.6%us, 10.0%sy, 0.1%ni, 77.5%id, 0.5%wa, 0.0%hi, 0.2%si, 0.1%st
Mem: 15297608k total, 14537912k used, 759696k free, 36456k buffers
Swap: 52428792k total, 16372136k used, 36056656k free, 2720680k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
60898 3488 20 0 12800 968 744 R 1.9 0.0 0:00.02 top
55776 3488 20 0 106m 2740 808 S 0.0 0.0 0:00.00 sshd
55779 3488 20 0 104m 2260 1432 S 0.0 0.0 0:00.09 bash
432471 3488 20 0 106m 888 884 S 0.0 0.0 0:00.00 sshd
432475 3488 20 0 55144 1540 1536 S 0.0 0.0 0:00.11 sftp-server
471611 3488 20 0 9508 412 404 S 0.0 0.0 0:00.00 control
471612 3488 20 0 181m 2152 1720 S 0.0 0.0 0:00.01 logshifter
471624 3488 20 0 4072 456 448 S 0.0 0.0 0:00.00 scl
471625 3488 20 0 9236 812 808 S 0.0 0.0 0:00.00 bash
471639 3488 20 0 373m 14m 13m S 0.0 0.1 0:03.53 mongod
475123 3488 20 0 778m 5264 5172 S 0.0 0.0 0:00.08 node
475124 3488 20 0 117m 2148 1708 S 0.0 0.0 0:00.00 logshifter
475151 3488 20 0 863m 114m 6776 S 0.0 0.8 0:04.10 node
6)查看內存使用情況。 (free - 顯示關於內存使用情況的統計信息:內核使用的全部空閒,已用,物理,交換,共享和緩衝區 選項:-b以字節爲單位計算內存-k缺省值以千字節爲單位計算內存-m計算內存以兆字節爲單位。)
free
total used free shared buffers cached
Mem: 15297608 14767896 529712 766468 36484 2746820
-/+ buffers/cache: 11984592 3313016
Swap: 52428792 16334312 36094480
這是我誤入歧途的地方。仍然有一點點的自由空間,但是當我在做一個密集的I/O時我不會花太多時間,因爲我將在這裏快速地向南進發。當發生這種情況時,我根本沒有看到任何錯誤日誌/消息。事情停止工作。
7)檢查你的插座。 (SS - 插座統計輸出將包含所有的TCP,UDP和Unix套接字連接的詳細信息。)
ss
State Recv-Q Send-Q Local Address:Port Peer Address:Port
(在這種情況下沒有打開插座..上面的線是剛剛列標題..)
8)檢查VMstat。 (vmstat - 內存,進程,尋呼等摘要信息) - 空閒/空閒內存空間量 si - 以千字節爲單位從磁盤每隔一秒鐘刷新一次 - 所以 - 以秒爲單位每秒刷新到磁盤)
vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 16248996 425248 33476 2946912 88 90 321 247 4 3 12 10 78 0 0
9)檢查I/O統計。信息(iostat - 中央處理單元(CPU)的統計信息和輸入/輸出統計信息設備和分區。)
iostat
Linux 2.6.32-573.12.1.el6.x86_64 (ex-std-node842.prod.rhcloud.com) 03/14/2016 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
11.60 0.12 10.21 0.49 0.06 77.52
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
xvda 6.56 197.23 147.83 238703267 178916836
xvdf 15.08 337.29 347.44 408209376 420504392
xvdg 15.13 337.45 347.44 408413143 420502512
xvdp 65.18 1603.17 1060.59 1940282568 1283607613
dm-0 7.97 108.87 33.25 131768290 40238544
dm-1 70.00 1574.18 1060.36 1905191416 1283329611
dm-2 3.48 87.89 114.58 106366791 138678084
10)(的mpstat - 報告處理器相關的統計數據)
mpstat
Linux 2.6.32-573.12.1.el6.x86_64 (ex-std-node842.prod.rhcloud.com) 03/14/2016 _x86_64_ (4 CPU)
01:10:59 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
01:10:59 AM all 11.60 0.12 10.01 0.49 0.00 0.21 0.06 0.00 77.52
11)用戶限制。 (ulimit用戶限制 - 限制系統範圍資源的使用-a報告所有當前限制)
ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 59663
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 350
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
今天我看到完全一樣的東西。他們的服務器系統可能正在發生什麼? – zipzit
我有一個要求:你會RHC進入你的裝備,然後運行:'oo-cgroup-read memory.failcnt'然後是'oo-cgroup-read memory.memsw.failcnt'並報告結果。兩者的結果應該爲零。如果非零表示您正在記憶+交換限制。 – zipzit