我们先使用三台虚拟机,创建一个 MGR 的集群。MySQL 的版本是 5720(之所以使用低版本的 MySQL,因为恐怕没有人能说清楚这个低版本的 MGR 的行为,不能扯淡只能观测)。
我们忽略这一 *** 作步骤,只看一下创建好的集群,检查一下谁是 Primary,现在我们得选择一个观测工具了。我们知道 MGR 需要通过网络来相互沟通,对集群内的节点状况达成一致。通过抓包对 MGR 的行为进行分析。
当您启动 IBM WebSphere Application Server 时,如果出现“端口已被占用”的错误提示,则说明您指定的端口已经被其他程序所占用。为了解决这个问题,您可以按照以下步骤进行 *** 作:
找到端口占用程序
使用以下命令查找当前占用指定端口的程序:
其中,"<port>" 是指被占用的端口号。此命令会列出当前占用该端口的程序的详细信息,包括程序的名称、PID等信息。
关闭占用程序
根据第一步查找到的程序,您可以通过以下命令杀死该程序进程:
其中,"<PID>" 是指被占用的程序的进程号。此命令会强制结束该程序进程,从而释放指定端口。
修改 IBM WAS 配置文件
如果您需要在 IBM WAS 中使用该端口,可以尝试修改 IBM WAS 配置文件,指定其他可用的端口。具体 *** 作步骤如下:
找到 IBM WAS 安装目录下的 profiles 目录,并找到您要修改的 profile 目录。
进入该目录下的 config 目录,找到 serverxml 文件,并将其中的端口号修改为其他可用的端口。
保存修改后的 serverxml 文件,并重新启动 IBM WAS。
以上是解决 IBM WAS 端口占用问题的一般方法。如果以上方法无法解决问题,您可以尝试重新安装 IBM WAS,或者咨询 IBM 官方技术支持。
本文环境 平台:RedHat AS 5, 8G RAM 软件:WebLogic Server 11gR1 硬件:HpBL460刀片服务器 配置集群应用的必要条件 集群中的所有 Server 必须位于同一网段,并且必须是 IP 广播(UDP)可到达的; 集群中的所有 Server 必须使用相同的版本,包题主是否想询问“在服务器上重启was会影响到其它服务器的原因”原因有共享数据库、共享文件系统。1、共享数据库:如果服务器集群使用共享数据库,则重启一个服务器会导致其他服务器无法访问该数据库,从而影响整个应用程序的运行。
2、共享文件系统:如果服务器集群使用共享文件系统,则重启一个服务器会导致其他服务器无法访问共享文件夹。网站访问量比较小,但是有个问题一直困扰着我们,就是was服务器隔一段时间就报线程挂起,时间有长有短,短的重启5分钟内就报。
一般情况是:
1开应用服务器——用户下载——报线程挂起——下载量下降——报线程N长时间没活动,超过was设置的阀值,释放掉。
2开应用服务器——用户下载——报线程挂起——下载量继续或者上升,挂起线程越来越多——was自动调整线程阀值——调不过来,挂。
经过查找,基本确定问题:是因为用户在用浏览器下载文件时,网络瞬断或其他原因,导致抛出异常,但是下载的线程并未释放。可打开浏览器下载,下到一半直接关掉浏览器来模拟这个现象。
byte[] b = new byte[1024];
while ((len = inread(b)) != -1) {
outwrite(b, 0, len);
}
登录后复制
修改为
byte[] b = new byte[1024];
while ((len = inread(b)) != -1) {
Threadsleep(50);
Threadyield();
outwrite(b, 0, len);
}
登录后复制
一些人建议的方法是,在服务器端给线程做个时间限制,超过时间的就关掉;但是这样做,较低网速下载大文件的用户,又会受到影响。因此用上面的做法是:线程处理一段时间,停一会,让出CPU控制权,不至于造成堵塞。
这个方法可能不是最好的,但是至少是比较合适的,现在服务器上线程挂起的现象已经大大减少,并且额外加了一句
if (requestgetHeader("Range") != null) {
ErrShow(request, response, "不支持多线程!");
return;
}
登录后复制
这样避免掉用下载工具的多线程下载。
哪位有更优解,请提出来,一起讨论一下。
刚才看到用守护线程来处理超时线程的解决方案,但另外一个技术主管极力反对,哪位能解释一下,为什么不可用?守护线程在什么情况下可用?谢谢给你个脚本,修改一下自己的服务器地址就行,启动直接加个start运行该脚本 ,停止加个stop运行该脚本
#!/bin/bash
if [ $# -lt 1 ]
then
echo "No Args Input"
exit;
fi
case $1 in
"start")
echo " =================== 启动Hadoop集群 ==================="
echo " ------------------- 启动HDFS -------------------"
ssh hadoop102 "/opt/module/hadoop-272/sbin/start-dfssh"
echo " ------------------- 启动YARN -------------------"
ssh hadoop103 "/opt/module/hadoop-272/sbin/start-yarnsh"
;;
"stop")
echo " =================== 关闭Hadoop集群 =================="
echo " ------------------- 关闭YARN ------------------"
ssh hadoop103 "/opt/module/hadoop-272/sbin/stop-yarnsh"
echo " ------------------- 关闭HDFS ------------------"
ssh hadoop102 "/opt/module/hadoop-272/sbin/stop-dfssh"
;;
)
esac将集群节点变单机,需要做以下几步:
1 停止集群中的所有节点,确保集群处于安全状态;
2 将集群中的所有节点的配置文件中的clusterenabled参数设置为false;
3 重新启动集群中的所有节点,确保集群处于单机模式;
4 将集群中的其他节点删除,以确保集群只有一个节点;
5 将集群中的所有节点的配置文件中的clusterenabled参数设置为true,以确保集群处于单机模式;
6 重新启动集群中的所有节点,确保集群处于单机模式;
7 检查集群中的所有节点,确保集群处于单机模式;
8 完成将集群节点变单机的 *** 作。昨天不知道说明原因,测试环境的物理机挂了,安装k8s的3台虚拟机正好全在这台物理机上面,现在要把他们全部启动起来,安装的时候好像没有相关的步骤,今天研究一下手动重启。
报错:The connection to the server 101001236:6443 was refused
很明显apiserver没有起来,但是apiserver安装的时候是以容器的方式安装的
显示一个容器也没起来,完全不知道咋整,搜索k8s重启,看了好几篇文章,有的文章居然是kubeadm init,这txx还有什么好说的呢。不过民间的高手也是很多的,如下:
静态pod可以直接被kubelet启动,那很有可能是kubelet没有正确启动,尝试如下:每台机器上都要 *** 作
然后用 docker ps 查看,可以看到master节点上的很多k8s容器已经启动起来了,但是worker node上的容器依然没有启动,用 kubectl get nodes ,看到node的状态还是notReady,那就很有可能是防火墙的问题了,直接关闭防火墙,看到worker node上的容器也起来了。
等待所有的calico pod启动完毕,node状态就变成ready了。
但是之前启动的 nignx pod 都不存在了,原因可能是:etcd的启动方式也是容器化的,重启后etcd内的数据被初始化了。
---本来怀疑是 systemctl daemon-reload 命令造成的,但是,今天这台服务器又重启了,我又试了一遍,不执行 systemctl daemon-reload 命令是无法重启k8s的。
---但是今天重启k8s,完成之后,昨天新建的2个pod仍然是存在的,那很有可能是我昨天不熟悉流程参杂了误 *** 作,但是现在也想不起来了,就暂时告一段落了,后面遇到问题再说吧。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)