服务器

Spring Boot 性能优化

人走茶凉 提交于 2019-11-30 03:53:42
Spring 框架给企业软件开发者提供了常见问题的通用解决方案,包括那些在未来开发中没有意识到的问题。但是,它构建的 J2EE 项目变得越来越臃肿,逐渐被 Spring Boot 所替代。Spring Boot 让我们创建和运行项目变得更为迅速,现在已经有越来越多的人使用它。我们已经在几个项目中使用了 Spring Boot ,今天我们就来一起讨论一下如何改进 Spring Boot 应用的性能。 首先,从之前我在开发中遇到的一个问题说起。在一次查看项目运行日志的时候,我偶然发现了一个问题,日志里显示这个项目总是加载 Velocity 模板引擎,但实际上这个项目是一个没有 web 页面的 REST Service 项目。于是我花了一点时间去寻找产生这个问题的原因,以及如何改进 Spring Boot 应用的性能。在查找了相关的资料后,我得出的结论如下: ##组件自动扫描带来的问题 默认情况下,我们会使用 @SpringBootApplication 注解来自动获取的应用的配置信息,但这样也会给应用带来一些副作用。使用这个注解后,会触发自动配置( auto-configuration )和 组件扫描 ( component scanning ),这跟使用 @Configuration、@EnableAutoConfiguration 和 @ComponentScan

Cloud Insight 客户案例-晨芯时代科技有限公司

孤街浪徒 提交于 2019-11-30 01:22:13
在不断迭代的过程中,Cloud Insight 也很重视客户对产品的使用体验,这次我们拜访了晨芯时代,了解到他们在使用 Cloud Insight 过程中对产品的一些想法。 客户背景 晨芯时代是一家开发电视盒子等产品的公司,由外包公司为其产品进行服务器端开发,他们自身不在服务器开发和系统运维方面进行特别大的投入,因此选择使用我们的产品 Cloud Insight——即 Ci,进行服务器端的监控。 晨芯时代一共搭建了9台服务器(CentOS),部署有 MySQL、Memcached、Nginx、Redis,使用 CI 监控系统和除 Redis 外的其他三项服务。他们主要关注系统网络与进程的性能指标。在使用 CI 之前一直使用 OneAPM Servers 监控系统性能指标。 Cloud Insight 采用 StatsD 的采集技术,对接 MySQL、Redis、MongoDB,以及 CentOS、RedHat 操作系统,利用 Hbase 存储和 OpenTSDB 的数据聚合、切片等功能,最终流向 Cloud Insight 进行展现。从而帮助优络时代实现低成本、高效的自动化运维。 面临问题 由于客户是初创团队,在人员和资源方面都比较不足,且暂时并不打算在服务器端开发和运维方面投入太大的人力成本,因此需要一款优秀的性能监控工具帮助其提高在运维方面的效率同时降低运维成本。 客户之前使用

Tomcat的基本认识和常用配置

浪子不回头ぞ 提交于 2019-11-29 21:02:26
Tomcat的基本认识和常用配置 Tomcat组成: Tomcat本身由一系列可配置的组件构成,其中核心组件是Servelt容器组件,它是所有其他Tomcat组件的顶层容器。 每个组件都可以在Tomcat安装目录/conf/server.xml文件中进行配置,每个Tomcat组件在server.xml文件中对应一种配置元素。 下面两张图简述了这些组件的关系 ================组成结构1================= ================组成结构2================= Tomcat中对于字节码文件的加载顺序: 1.Web应用的 WEB-INF/classes 中查找字节码文件 2.Web应用的 WEB-INF/lib 目录下的JAR文件中查找字节码文件 3.在Tomcat的lib子目录下直接查找字节码文件 4.在Tomcat的lib子目录下JAR的文件中查找字节码文件 Tomcat中的虚拟主机的配置: 配置虚拟主机: 在conf/server.xml中<Engin>标签下配置<Host>标签就可以为tomcat增加一台虚拟主机了 name -- 指定虚拟主机的名称,浏览器通过这个名称访问虚拟主机 appBase -- 虚拟主机管理的目录,放置在这个目录下的web应用当前虚拟主机可以自动加载 * 缺省虚拟主机 :如果来访者是通过ip来访问

TCP关闭问题

六月ゝ 毕业季﹏ 提交于 2019-11-29 08:15:24
三次握手,四次挥手。 意思是tcp建立连接时需要三次交互来完成,A发起连接 A --- SYN --> B A <-- SYN + ACK --- B (1) A --- ACK --> B 而关闭tcp连接需要四次交互,A发起关闭 A --- FIN --> B A <-- ACK --- B (1) A <-- FIN --- B A --- ACK --> B (2) 这里在 (1) 时B开始处于 CLOSE_WAIT 状态,一直到收到ACK后B才转为 CLOSED , 而A就处于TIME_WAIT状态,一直到2MSL(Max Segament Lifetime)才转为 CLOSED 为什么需要2MSL才真正转为CLOSED?是因为需要缓冲时间万一B丢失ACK重发FIN的话还可以回复ACK,还有就是2MSL后“迷失”在网络上的包全部失效 大量的 TIME_WAIT 和 CLOSE_WAIT 会造成服务器的连接资源被浪费甚至占满后导致服务器服务拒绝,怎么解决? 解决TIME_WAIT net.ipv4.tcp_tw_recycle = 1 #开启快速回收,默认0 net.ipv4.tcp_tw_reuse = 1 #开启重用,默认0 net.ipv4.tcp_fin_timeout = 30 # 减小fin_timeout,默认60,单位s 系统参数的配置可以解决time

XMPP协议学习笔记三(Openfire服务器端搭建开发环境)

醉酒当歌 提交于 2019-11-29 06:44:05
在了解了XMPP的基本结构和一些概念之后,我们暂时告别枯燥的理论学习,来动手搭建一下Openfire+Spark的开发环境,实际感受一下搭建整套IM通讯系统的过程。 开发环境:windows XP sp3,Eclipse3.6.1,jdk1.6.0_24,Ant1.7 首先从官网上下载最新版本的openfire源码 第二步,在Eclipse中创建名为openfire的java项目 将openfire源码中openfire_src下的所有文件复制到此项目中,效果如下 项目有错误是因为jar包没有加进来,右键点击项目选择Properties,添加build/lib下所有的jar包 为了方便编辑,我们要把各个插件的源代码抽出来,在Properties文件夹中选择Source,Add Folders,把src/java和plugins下面的所有插件前边打上勾。 效果如下 下一步,复制src/i18n/openfire_i18n_en.properties和src/resources/jar/admin-sidebar.xml两个文件,到项目下的bin目录。 然后,我们用ant来编译整个项目,选择项目下的build/build.xml文件,运行,若是出现BUILD SUCCESSFUL则编译成功,不行就多来几遍。 下面建立项目builder,选择src/java/org

服务器运维学习中的知识点积累

岁酱吖の 提交于 2019-11-28 18:22:48
-----------------------------Mysql--------------------------- 问题描述:今天在公司局域网中配置里一台服务器,在装上mysql以后,局域网内的电脑访问速度非常慢,大概要十几秒,但是ping那台服务器的速度很快。 解决方法:在mysql的配置文件my.ini或者my.conf中的[mysqld]下加入: skip-name-resolve 重新启动服务器后,速度得到了很大的提升。 原因:当远程访问mysql时,mysql会解析域名,导致访问速度很慢,加入skip-name-resolve的目地是禁用DNS解析,所以链接速度就上来了。 参考:http://blog.chinaunix.net/uid-20788470-id-3118262.html ----------------------------Centos---------------------------------------- 1.问题描述:在公司局域网中的服务器因为采用的DHCP机制来分配IP,所以IP地址不稳定,时不时的会更换。为了解决这个问题,在网上查阅资料以后,得到了如下解决方案 解决办法:修改网卡的配置文件 vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 // 网卡 HWADDR

mysql 大量unauthenticated user (转)

时光毁灭记忆、已成空白 提交于 2019-11-27 12:33:57
前几天,公司服务器做调整,然后mysql就连不上了....time out 无语了,各种能想的办法都想了 ,主要是我mysql方面也不是很懂,当时只是推测是mysql这边出了,问题,具体原因不明,然后领导出马,搞定.... 如下为问题的描述及解决方案: 问题描述:执行mysql命令show processlist;查看进程的时候出现大量unauthenticated user,大致如下: |592|unauthenticated user|192.168.3.20:35320|NULL|Connect| |login|NULL| |593|unauthenticated user|192.168.3.20:35321|NULL|Connect| |login|NULL| |594|unauthenticated user|192.168.3.20:35322|NULL|Connect| |login|NULL| 原因: 这个是官方的一个特殊设定,亦可称呼他为mysql的bug,不管连结的的方式是经过hosts或是IP的模式, 他都会对DNS做反查。mysql会尝试去反查IP->DNS,由于反查解析过慢,无法应付快速多量的查询。 这个主要是因为DNS不稳定导致的。 如果做了网络隔离,MySQL处于一个相对安全的网络环境,那么开启skip-name

centos架设lamp环境的笔记

假装没事ソ 提交于 2019-11-26 22:30:45
LAMP Linux+Apache+Mysql+PHP 第一部分 Linux 略 第二部分 Apache 1. 安装 yum install httpd 2. 启动服务 service httpd start 3. 修改Apache默认网站目录(可略) Apache默认的网站目录是在/var/www/html,假设我们要把这个目录改为/data/www,首先创建/data/www目录,然后修改httpd.conf(一般是/etc/httpd/conf/httpd.conf),查找其中的/var/www/html,应该有两处: 一处是: DocumentRoot "/var/www/html" 一处是: <Directory "/var/www/html"> 统统改成/data/www,然后重启Apache service httpd restart 如果此时访问被拒绝,说明/data/www的权限不对,此时修改该目录下的用户权限即可: chmod -R 755 /data/www 4. Apache设置禁止访问网站目录 编辑httpd.conf 找到: Options Indexes FollowSymLinks 修改为: Options FollowSymLinks 第三部分 Mysql 1. 安装 yum install mysql mysql-server 2.

phpMyAdmin 试图连接到 MySQL 服务器,但服务器拒绝连接 问题

拜拜、爱过 提交于 2019-11-26 22:25:51
phpMyAdmin 试图连接到 MySQL 服务器,但服务器拒绝连接 问题 以下是本人遇到:phpMyAdmin 试图连接到 MySQL 服务器,但服务器拒绝连接。您应该检查 config.inc.php 中的主机、用户名和密码,并且确定这些信息与 MySQL 服务器的管理员所给出的信息一致。 问题的解决方法: 在网上搜了下很多人都遇到这个问题,问题一样,但产生的过程都不大相同。 mysql版本:mysql-noinstall-5.0.22-win32.zip phpmyadmin版本:2.7.0-pl2 产生问题的原因: 用phpmyadmin链接mysql数据库,并修改mysql数据库的密码。但修改的方式是直接在表里面进行修改保存。没有用sql语句。 修改phpmyadmin/config.default.php文件下的mysql数据库登录密码。 http://localhost/phpmyadmin/ 无法访问,出现上面所说访问拒绝问题。 解决方法: 1、停止mysqld-nt.exe服务,重新更新一份mysql到指定目录中,启动mysqld-nt.exe服务。 2、此时mysql的root访问密码是空。用 http://localhost/phpmyadmin/ 登录访问mysql。 3、用sql语句修改mysql数据库user表的root用户密码: UPDATE