Category Uncategorized

线上nginx的一次“no live upstreams while connecting to upstream ”分析

先描述一下环境,前段的负载均衡转发给nginx,nginx再转发给后端的应用服务器。 nginx配置文件如下: upstream ads {         server ap1:8888 max_fails=1 fail_timeout=60s;         server ap2:8888 max_fails=1 fail_timeout=60s; } 出现的现象是: 日志里面每隔一两分钟就会记录一条类似 *379803415 no live upstreams while connecting to upstream  的日志, 此外,还有大量的“upstream prematurely closed connection while reading response…

MySQL错误: could not retrieve transation read-only status server

问题描述: java代码在开始事务后,先做了一个查询,再insert,此时会报:         java.sql.SQLException: could not retrieve transation read-only status server 解决过程: 查看mysql的事物隔离级别 SHOW VARIABLES LIKE ‘%iso%’; 返回结果: REPEATABLE-READ 把这个改成:READ-COMMITTED 就好了: SET GLOBAL tx_isolation=’READ-COMMITTED’; (记得java重启应用,要永久生效的就改my.ini配置文件) 问题分析: 当数据库隔离级别为REPEATABLE-READ时,查询一个select语句也算是事物的开始,而且在hibernate里会把以select语句开头的事务标记为只读事务,此时在这个事务里再执行insert、update、delete等DML语句就会报错。

rsyslog 日志服务器接收日志权限问题

rsyslog 权限; 默认 [root@dr-mysql01 zjzc_log]# ls -ltr zj-frontend0*-access*27 -rw——- 1 root root 322 Sep 27 07:55 zj-frontend02-access.2016-09-27 600 $FileOwner elk $FileGroup elk $FileCreateMode 0755 $DirCreateMode 0755 $Umask 0022 修改后: [root@dr-mysql01 zjzc_log]# ls -ltr zj-frontend0*-access*27 -rwxr-xr-x 1 elk elk 10558 Sep 27 07:58 zj-frontend02-access.2016-09-27

Linux 之 rsyslog 系统日志转发

一、rsyslog 介绍 ryslog 是一个快速处理收集系统日志的程序,提供了高性能、安全功能和模块化设计。rsyslog 是syslog 的升级版,它将多种来源输入输出转换结果到目的地,据官网介绍,现在可以处理100万条信息。 特性:1.多线程 2.支持加密协议:ssl,tls,relp 3.mysql、oracle、postgreSQL 4.等等..   二、实践部署() 2.1 环境图 2.2.rsyslog server上部署操作 安装rsyslog 程序(rsyslog默认已经在各发行版安装,如果系统中没有的话,可以用yum 进行安装,如下:) [root@opm ~]# yum install rsyslog -y 编辑rsyslog配置文件,路径 ,修改前最好先备份一份,修改后的文件内容如下 [root@opm log]# grep -v “^#” | grep -v “^$” $ModLoad imuxsock #…

使用 Artifactory 搭建 Maven 私服

❤️ 使用 Docker 部署 Artifactory 1、获取 artifactory-oss 镜像 $ docker pull docker.bintray.io/jfrog/artifactory-oss 2、创建数据卷 例如在 ~/docker/volume/artifactory 路径下执行 $ docker volume create data_artifactory 3、启动容器 $ docker run –name any-artifactory -d \ -v data_artifactory:/var/opt/jfrog/artifactory \ -p 8081:8081 docker.bintray.io/jfrog/artifactory-pro 部署 artifactory ❤️ Maven 私服配置…

Maven 安装和配置

Maven 安装 Maven 安装 官网: 官网下载:download.cgi 历史版本下载: 此时(20160502) Maven 最新版本为:3.3.9 Maven 3.3 的 JDK 最低要求是 JDK 7 我个人习惯 /opt 目录下创建一个目录 setups 用来存放各种软件安装包;在 /usr 目录下创建一个 program 用来存放各种解压后的软件包,下面的讲解也都是基于此习惯 我个人已经使用了第三方源:EPEL、RepoForge,如果你出现 yum install XXXXX 安装不成功的话,很有可能就是你没有相关源,请查看我对源设置的文章 下载压缩包:wget 解压:tar zxvf apache-maven-3.3.9-bin.tar.gz 修改目录名,默认的太长了:mv apache-maven-3.3.9/ maven3.3.9/ 移到我个人习惯的安装目录下:mv…

Tomcat 8 安装和配置、优化

Tomcat 8 安装 Tomcat 8 安装 官网: Tomcat 8 官网下载:download-80.cgi 此时(20160509) Tomcat 8 最新版本为:apache-tomcat-8.0.32.tar.gz 我个人习惯 /opt 目录下创建一个目录 setups 用来存放各种软件安装包;在 /usr 目录下创建一个 program 用来存放各种解压后的软件包,下面的讲解也都是基于此习惯 我个人已经使用了第三方源:EPEL、RepoForge,如果你出现 yum install XXXXX 安装不成功的话,很有可能就是你没有相关源,请查看我对源设置的文章 Tomcat 8 下载:wget 压缩包解压:tar -zxvf apache-tomcat-8.0.32.tar.gz 移到解压出来文件夹到 /usr 下:mv apache-tomcat-8.0.32/ /usr/program/…

Nexus 在linux下的安装和配置

Nexus 安装 官网: 官网下载:archived/ 此时(20160417) Nexus 最新版本为:nexus-2.12.0-01-bundle JDK 要求是 JDK 7,官网要求 7u6 或之后版本,包括 JDK 8 官网帮助说明 1: 官网帮助说明 2: 我个人习惯 /opt 目录下创建一个目录 soft 用来存放各种软件安装包;在 /usr 目录下创建一个 program 用来存放各种解压后的软件包,下面的讲解也都是基于此习惯 我个人已经使用了第三方源:EPEL、RepoForge,如果你出现 yum install XXXXX 安装不成功的话,很有可能就是你没有相关源,请查看我对源设置的文章 压缩包下载(由于国内网络的原因不排除你下载不了):wget 如果地址下载不了,那是因为你需要开 VPN,你也可以选择使用网盘下载 nexus-2.12.0-01-bundle.tar.gz 版本:链接: 密码:nerc…

tomcat8性能优化参考

  1)内存优化(调整配置堆的大小,修改文件:catalina.sh) JAVA_OPTS=”-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -XX:MinHeapFreeRatio=80 -XX:MaxHeapFreeRatio=80 -XX:ThreadStackSize=512 -XX:NewSize=128m -XX:MaxPermSize=64m -XX:NewRatio=4 -XX:SurvivorRatio=8 -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:+UseConcMarkSweepGC -XX:+ScavengeBeforeFullGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:.. -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=.. -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=defaultrecording=true” 开启飞行记录 -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=defaultrecording=true 参数说明,可参考jvm的配置: -server:服务器模式,该参数放置在配置项的首位置 -Xms:堆的初始大小,单位MB 配置-Xms与-Xmx一致,为可用内存的80% -XmX:堆的最大大小,单位MB -Xmn:新生代的初始大小,单位MB 为堆大小的3/8 在使用jmc工具时,如需要打开飞行记录,需要配置以下3个参数,不用时可以先不配置: -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=defaultrecording=true 2)配置文件中配置项的优化(修改文件:server.xml)…

Tomcat 7优化配置参数

摘要: Tomcat在使用的过程中会遇到很多报错,有些是程序的报错,但还有一部分是tomcat本身的报错,我们可以通过优化tomcat的初始配置来提高tomcat的性能。Tomcat的优化主要体现在两方面:内存、并发连接数。 Tomcat在使用的过程中会遇到很多报错,有些是程序的报错,但还有一部分是tomcat本身的报错,我们可以通过优化tomcat的初始配置来提高tomcat的性能。Tomcat的优化主要体现在两方面:内存、并发连接数。 1、内存优化: 优化内存,主要是在bin 配置文件中进行。linux上,在catalina.sh中添加: JAVA_OPTS=”-server -Xms1G -Xmx2G -Xss256K -Djava.awt.headless=true -Dfile.encoding=utf-8 -XX:MaxPermSize=256m -XX:PermSize=128M -XX:MaxPermSize=256M” 其中: • -server:启用jdk的server版本。 • -Xms:虚拟机初始化时的最小堆内存。 • -Xmx:虚拟机可使用的最大堆内存。 #-Xms与-Xmx设成一样的值,避免JVM因为频繁的GC导致性能大起大落 • -XX:PermSize:设置非堆内存初始值,默认是物理内存的1/64。 • -XX:MaxNewSize:新生代占整个堆内存的最大值。 • -XX:MaxPermSize:Perm(俗称方法区)占整个堆内存的最大值,也称内存最大永久保留区域。 1)错误提示:java.lang.OutOfMemoryError:Java heap space Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,有可能导致系统无法运行。常见的问题是报Tomcat内存溢出错误,Outof Memory(系统内存不足)的异常,从而导致客户端显示500错误,一般调整Tomcat的-Xms和-Xmx即可解决问题,通常将-Xms和-Xmx设置成一样,堆的最大值设置为物理可用内存的最大值的80%。 set JAVA_OPTS=-Xms512m-Xmx512m 2)错误提示:java.lang.OutOfMemoryError: PermGenspace PermGenspace的全称是Permanent Generationspace,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGenspace中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage…