2016-02-13 79 views
1

在我的Openshift帐户上,我已经在安装了MySql和PHPAdmin盒式磁带的DIY应用程序上设置了Tomcat 8和JDK 8。来自OpenShift DIY项目的502代理错误

我的war文件正确指向了所有内容,并且在任何日志中都没有启动错误。但是,当我尝试访问我的OpenShift URL时,我在浏览器中收到502 Proxy Error。我正在使用Chrome。

The proxy server received an invalid response from an upstream server. 
The proxy server could not handle the request GET /. 

什么可能导致此问题?

+1

今天我看到完全一样的东西。他们的服务器系统可能正在发生什么? – zipzit

+0

我有一个要求:你会RHC进入你的装备,然后运行:'oo-cgroup-read memory.failcnt'然后是'oo-cgroup-read memory.memsw.failcnt'并报告结果。两者的结果应该为零。如果非零表示您正在记忆+交换限制。 – zipzit

回答

4

@格拉汉姆那里的乐趣在哪里?所以我会分享我的经验,以防其他人到达这里。我想我的例子是我的'免费'设备达到了授权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