生产环境CPU逐渐飙升到100%,导致项目卡顿,访问失败
通过top命令查看进程下各个线程的CPU使用情况
top -H -p PID
PID USE PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
23658 qifly 20 0 1842m 136m 13m R 100.2 0.9 1:35.45 java
通过JDK的jstack命令查看线程的堆栈信息,找到出问题的代码
jstack PID|grep -A 20 TID
说明:PID为JAVA进程ID TID为16进制的线程ID -A 20为打印20行
经排查为特殊情况导致while死循环导致CPU飙升100%
或者通过jstack将堆栈信息保存至文件中
jstack PID > info.log
安装Docker及配置镜像
安装docker
yum -y install docker
docker --version
systemctl start docker
登录阿里云获取镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://qifjlwgz.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
yum命令安装ocat
yum -y install socat
下载安装erlang
wget http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm
rpm -ivh erlang-19.0.4-1.el7.centos.x86_64.rpm
下载安装rebbitMQ
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm
rpm -ivh rabbitmq-server-3.6.10-1.el7.noarch.rpm
PS:重新安装,先/var/lib/rabbitmq目录和/etc/rabbitmq目录
防火墙需开放5672(AMQP) 15672(WEB)端口
相关命令
systemctl start rabbitmq-server
rabbitmqctl status //查看启动状态
rabbitmqctl stop //关闭服务
rabbitmq-server -detached //进入mq目录,启动rabbitmq,-detached代表后台守护进程方式启动
rabbitmqctllist_users //查看角色
启动web访问rabbitmq插件
rabbitmq-plugins enable rabbitmq_management
默认guest用户不能通过web端访问,需新建用户
rabbitmqctl add_user admin 123 //admin为用户名 123为密码
rabbitmqctl set_user_tags admin administrator //给用户赋角色
修改rabbitmq配置
cp /usr/share/doc/rabbitmq-server-3.6.10/rabbitmq.config.example /etc/rabbtimq/rabbitmq.config
安装消息延迟插件
wget https://dl.bintray.com/rabbitmq/community-plugins/3.6.x/rabbitmq_delayed_message_exchange/rabbitmq_delayed_message_exchange-20171215-3.6.x.zip
unzip rabbitmq_delayed_message_exchange-20171215-3.6.x.zip -d /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.10/plugins
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
重启rabbitMq用户丢失解决
原因:RabbitMQ数据是根据当前hostname作为node节点作为数据名保存
数据路径:/var/lib/rabbitmq/mnesia/
可以通过添加RabbitMQ固定节点名字为info,保证数据文件不变
echo 'NODENAME=rabbit@info' | sudo tee -a /etc/rabbitmq/rabbitmq-env.conf
设置开机启动
systemctl enable rabbitmq-server.service
centos6防火墙
进入防火墙配置命令
vim /etc/sysconfig/iptables
光标放到一行上,按yy,再按P,复制一行,开放端口
要安装nginx需先安装依赖
批量安装nginx依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
下载安装nginx
下载nginx:http://nginx.org/download/
wget url
解压
tar -zxvf nginx文件名
切换到root
su root
查看sudoers权限
ll /etc/sudoers
查看是否有安装mysql
rpm -qa|grep jdk
如有使用yum命令卸载
yum -y remove jdk版本下载VMWARE12进行安装。
备份源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
输入ifconfig后没有eth0信息的,找不到IP的,可以试试输入 ifup eth0 (就是打开网卡),然后再输入ifconfig
vim /etc/sysconfig/network-scripts/ifcfg-eth0