因为自己比较懒,拖了很久写了这篇博客,也算对近期工作的一个总结。
一、Centos更新系统
参考文章(https://jingyan.baidu.com/article/4853e1e51d0c101909f72607.html)
1、系统更新:yum update
2、系统更新版本:yum info updates
二、Centos安装jdk8 (想省事直接用yum安装)
参考文章 (http://blog.csdn.net/u010448530/article/details/78843910)
1、查找OPenJDK:rpm -qa | grep java
2、检查OpenJDK:java _version
3、卸载OPenJDK:rp -e --nodeps [上一部查到的java包名]
4、Centos 安装下载文件wget:yum -y install wget
6、安装jdk-8u151-linux-i586.rpm:rpm
7、配置环境变量:
cat << EOF >>/etc/profile
> JAVA_HOME=/usr/java/jdk1.8.0_151
> JRE_HOME=/usr/java/jdk1.8.0_151/jre
> PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
> CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
> export JAVA_HOME JRE_HOME PATH CLASSPATH
> EOF
8、测试安装是否成功
java
java -version
javac
三、Centos安装并设置MariaDB
参考文章(http://blog.csdn.net/renfufei/article/details/17616549)
1、添加yum数据源:(建议命名为MariaDB.repo)
cd /etc/yum.repos.d/
vim /etc/yum.repos.d/MariaDB.repo
2、写入文件内容:(建议使用 10.0)
# MariaDB 10.0 CentOS repository list - created 2015-08-12 10:59 UTC
# http://mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
该文件的内容是参考官网,并从官网上生成的,设置安装源仓库的 具体的地址为: https://downloads.mariadb.org/mariadb/repositories/
选择好操作系统版本之后既可以查看,其他操作系统的安装源也可以在此处查看并设置。
如果服务器不支持https协议,或者gpgkey 保错,确保没问题的话,可以将 gpgcheck=1 修改为 gpgcheck=0,则不进行校验
3、安装数据库
# yum remove MariaDB-server MariaDB-client
yum -y install MariaDB-server MariaDB-client
4、启动数据库
# 查看mysql状态;关闭数据库
# service mysql status
# service mysql stop
# 启动数据库
service mysql start
5、修改密码
# 修改root密码
mysqladmin -u root password 'root'
因为安装好以后的root密码是空,所以需要设置; 如果是测试服务器,那么你可以直接使用root,不重要的密码很多时候可以设置为和用户名一致,以免忘记了又想不起来。
如果是重要的服务器,请使用复杂密码,例如邮箱,各种自由组合的规则的字符等。
6、登陆数据库
mysql -u root -p
7、修改数据存放目录
# 停止数据库
service mysql stop
# 创建目录,假设没有的话
mkdir /data/mysql_data
# 拷贝默认数据库到新的位置
# -a 命令是将文件属性一起拷贝,否则各种问题
cp -a /var/lib/mysql /data/mysql_data
# 备份原来的数据
cp -a /etc/my.cnf /etc/my.cnf_original
# 其实查看 /etc/my.cnf 文件可以发现
# MariaDB 的此文件之中只有一个包含语句
# 所以需要修改的配置文件为 /etc/my.cnf.d/server.cnf
cp /etc/my.cnf.d/server.cnf /etc/my.cnf.d/server.cnf_original
vim /etc/my.cnf.d/server.cnf
# 在文件的 mysqld 节下添加内容
[mysqld]
datadir=/data/mysql_data/mysql
socket=/var/lib/mysql/mysql.sock
#default-character-set=utf8
character_set_server=utf8
slow_query_log=on
slow_query_log_file=/data/mysql_data/slow_query_log.log
long_query_time=2
其中,也只有 datadir 和 socket 比较重要; 而 default-character-set 是 mysql 自己认识的,而 mariadb5.5 就不认识,相当于变成了 character_set_server
8、 创建慢查询日志文件
既然上面指定了慢查询日志文件,我后来看了下MariaDB的err日志,发现MariaDB不会自己创建该文件,所以我们需要自己创建,并修改相应的文件权限(比如 mysql 采用 mysql用户,可能我们使用 root用户创建的文件,此时要求慢查询日志文件对mysql用户可读可写就行。)
touch /data/mysql_data/slow_query_log.log
chmod 666 /data/mysql_data/slow_query_log.log
然后重新启动MySQL.
service mysql start
9、 CentOS下mysql最大连接数设置问题
参考文章(http://blog.csdn.net/paul123456789io/article/details/68061489)
当最大连接数比较小时,可能会出现“1040 too many connection”错误。
可以通过修改配置文件来修改最大连接数
首先需要重启mysql服务,执行命令:service mysql restart
也有可能是:service mysqld restart
登录mysql:mysql -uroot -p
输入密码,回车;
登录成功后执行以下语句查询当前的最大连接数:
select VARIABLE_VALUE from information_schema.GLOBAL_VARIABLES where VARIABLE_NAME='MAX_CONNECTIONS';
执行以下语句修改最大连接数:
set global max_connections = 3600;
注意:这个方法只是临时的修改了最大连接数,重新启动MySQL服务后就还原了。
解决问题:
要彻底解决问题还是要修改my.cnf配置文件,这里使用VI来修改,输入命令:vi /etc/my.cnf 回车;打开文件后按“i”键进入编辑状态;
在“[mysqld]”下面添加“max_connections=3600”,按Esc键进入命令模式,输入“:wq”回车(保存并退出)。
执行:service mysql restart 重新启动MySQL服务;
四、Centos开启远程连接
参考文章(http://www.cnblogs.com/chenjw-note/p/5887908.html)
1、远程连接上Linux系统,确保Linux系统已经安装上了MySQL数据库。登陆数据库。mysql -uroot -p(密码)。
2、创建用户用来远程连接
GRANT ALL PRIVILEGES ON *.* TO 'itoffice'@'%' IDENTIFIED BY 'itoffice' WITH GRANT OPTION;
(第一个itoffice表示用户名,%表示所有的电脑都可以连接,也可以设置某个ip地址运行连接,第二个itoffice表示密码)。
3、执行 flush privileges;命令立即生效
4、查询数据库的用户(看到如下内容表示创建新用户成功了)
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
5、查看端口号
show global variables like 'port';
五、centos7 Firewall防火墙开启端口
参考文章(http://blog.csdn.net/codepen/article/details/52738906)
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent
出现success表明添加成功
命令含义:
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
重启防火墙
systemctl restart firewalld.service
六、Tomcat 8 安装和配置、优化(想省事直接用yum安装)
参考文章(http://wiki.jikexueyuan.com/project/linux-in-eye-of-java/Tomcat-Install-And-Settings.html)
Tomcat 8 下载:wget http://mirrors.sorengard.com/apache/tomcat/tomcat-8/v8.5.24/bin/apache-tomcat-8.5.24.tar.gz
压缩包解压:tar -zxvf apache-tomcat-8.5.24..tar.gz
移到解压出来文件夹到 /usr 下:mv apache-tomcat-8.5.24./ /usr/program/
为了方便,修改解压目录的名字:mv /usr/program/apache-tomcat-8.5.24/ /usr/program/tomcat8/
测试安装好后的 Tomcat:
启动 Tomcat:sh /usr/program/tomcat8/bin/startup.sh ; tail -200f /usr/program/tomcat8/logs/catalina.out
访问:http://服务器 IP 地址:8080/
停止 Tomcat:sh /usr/program/tomcat8/bin/shutdown.sh
Tomcat 8 配置
设置 Tomcat 环境变量:
sudo vim /etc/profile
最文件最尾巴添加下面内容:
CATALINA_HOME=/usr/program/tomcat8
export CATALINA_HOME
# 下面参数根据自己机子内存进行配置
# CATALINA_OPTS 只配置给 Tomcat 的 VM
# JAVA_OPTS 配置给所有调用 Java 的程序的 VM
# 有 CATALINA_OPTS 的时候 Tomcat 优先读这个
# 其中:-server 表示启用 jdk 的 server 版,一定要作为第一个参数,在多个 CPU 时性能佳;
CATALINA_OPTS="-server -Xms528m -Xmx528m -XX:PermSize=256m -XX:MaxPermSize=358m"
export CATALINA_OPTS
# 设置生成的 PID 位置
CATALINA_PID=$CATALINA_HOME/catalina.pid
export CATALINA_PID
刷新变量配置:source /etc/profile
如果使用 shutdown.sh 无法停止 tomcat,可以修改其配置:vim /usr/program/tomcat8/bin/shutdown.sh
把最尾巴这一行:exec "$PRGDIR"/"$EXECUTABLE" stop "$@"
改为:exec "$PRGDIR"/"$EXECUTABLE" stop 10 -force
Tomcat 8 优化
编辑配置文件:vim /usr/program/tomcat8/conf/server.xml
修改链接参数:
默认值:
<Connector
port="8080"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
/>
修改为:
<Connector
port="8080"
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
connectionTimeout="20000"
redirectPort="8443"
enableLookups="false"
acceptCount="100"
maxThreads="200"
minSpareThreads="10"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript"
URIEncoding="utf-8"
/>
重点参数解释:
protocol,Tomcat 8 设置 nio2 更好:org.apache.coyote.http11.Http11Nio2Protocol
protocol,Tomcat 6 设置 nio 更好:org.apache.coyote.http11.Http11NioProtocol
enableLookups,禁用DNS查询
acceptCount,指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理,默认设置 100
maxThreads,最大并发数,默认设置 200
minSpareThreads,Tomcat初始化时创建的线程数,默认设置
七、Centos7下添加Tomcat为系统服务
参考文章(http://blog.csdn.net/stinkstone/article/details/78082725)
1、编辑服务文件:/usr/lib/systemd/system/tomcat.service
[unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
ExecStart=/usr/program/tomcat8/bin/startup.sh
ExecStop=/usr/program/tomcat8/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
2、常用指令
查看全部服务命令:
systemctl list-unit-files --type service
查看服务
systemctl status name.service
启动服务
systemctl start name.service
停止服务
systemctl stop name.service
重启服务
systemctl restart name.service增加开机启动
systemctl enable name.service
删除开机启动
systemctl disable name.service
其中.service 可以省略
八、Tomcat配置优化
参考文章(http://blog.csdn.net/maosijunzi/article/details/46562489)
vim /usr/program/tomcat8/bin/catalina.sh
在配置文件的可编辑内容cygwin=false上面,加上如下内容(具体参数根据你服务器情况自行修改):
JAVA_OPTS="-Xms384m -Xmx384m -Xmn128m -XX:PermSize=128m -XX:MaxPermSize=128m -XX:+ExplicitGCInvokesConcurrent -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=60 -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSClassUnloadingEnabled -XX:MaxTenuringThreshold=15 -XX:SurvivorRatio=8 -XX:ParallelGCThreads=16 -XX:+HeapDumpOnOutOfMemoryError -Djava.security.egd=file:/dev/./urandom -Djava.awt.headless=true"
九、开启Tomcat APR运行模式,优化并发性能
参考文章(http://blog.csdn.net/xyang81/article/details/51502766)
Tomcat支持三种接收请求的处理方式:BIO、NIO、APR
1>、BIO模式:阻塞式I/O操作,表示Tomcat使用的是传统Java I/O操作(即java.io包及其子包)。Tomcat7以下版本默认情况下是以bio模式运行的,由于每个请求都要创建一个线程来处理,线程开销较大,不能处理高并发的场景,在三种模式中性能也最低。启动tomcat看到如下日志,表示使用的是BIO模式:
2>、NIO模式:是Java SE 1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包)。是一个基于缓冲区、并能提供非阻塞I/O操作的Java API,它拥有比传统I/O操作(bio)更好的并发运行性能。要让Tomcat以nio模式来运行比较简单,只需要在Tomcat安装目录/conf/server.xml文件中将如下配置:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改成:
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443" />
注意:Tomcat8以上版本,默认使用的就是NIO模式,不需要额外修改
3>、apr模式:简单理解,就是从操作系统级别解决异步IO问题,大幅度的提高服务器的处理和响应性能, 也是Tomcat运行高并发应用的首选模式。
启用这种模式稍微麻烦一些,需要安装一些依赖库,下面以在CentOS7 mini版环境下Tomcat-8.0.35为例,介绍安装步聚:
APR 1.2+ development headers (libapr1-dev package)
OpenSSL 0.9.7+ development headers (libssl-dev package)
JNI headers from Java compatible JDK 1.4+
GNU development environment (gcc, make)
启用apr模式步聚
1、安装依赖库
因为apr模式本质是使用JNI技术调用操作系统IO接口,需要用到相关API的头文件
yum install apr-devel
yum install openssl-devel
yum install gcc
yum install make
注意:openssl库要求在0.9.7以上版本,APR要求在1.2以上版本,用rpm -qa | grep openssl检查本机安装的依赖库版本是否大于或等于apr要求的版本。
2、安装apr动态库
方式1:
安装tomcat-native:
搜索tomcat-native安装包:
# yum list | grep tomcat-native
假设已经存在,直接安装:
# yum install tomcat-native
……
正在安装 : tomcat-native-1.1.30-1.el7.x86_64 1/1
验证中 : tomcat-native-1.1.30-1.el7.x86_64 1/1
已安装:
tomcat-native.x86_64 0:1.1.30-1.el7
完成!
查看是否成功安装:
# rpm -qa tomcat-native
tomcat-native-1.1.30-1.el7.x86_64
方式2:
进入tomcat的bin目录,解压tomcat-native.tar.gz文件,并进入tomcat-native-1.2.7-src/native目录,执行./configure && make && make install 命令,动态库默认安装在/usr/local/apr/lib目录下,如下图所示:
3、配置APR本地库到系统共享库搜索路径中
方式1:
设置LD_LIBRARY_PATH和LD_RUN_PATH环境变量,指向/usr/local/apr/lib目录,可配置到$HOME/.profile文件中
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
export LD_RUN_PATH=$LD_RUN_PATH:/usr/local/apr/lib
方式2:
拷贝/usr/local/apr/lib目录下所有动态库到/usr/lib或/lib系统共享库搜索目录下即可。
copy /usr/local/apr/lib/libtcnative* /usr/lib/
方式3:(推荐)
编辑$TOMCAT_HOME/bin/catalina.sh文件,在虚拟机启动参数JAVA_OPTS中添加java.library.path参数,指定apr库的路径
JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/usr/local/apr/lib"
Tomcat8以下版本,需要指定运行模式,将protocol从HTTP/1.1改成org.apache.coyote.http11.Http11AprProtocol
<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
connectionTimeout="20000"
redirectPort="8443" />
运行Tomcat后,看到如下日志表示开启apr模式成功:
如果没有配置SSL相关参数,并且开启了SSL,启动时会发生org.apache.tomcat.jni.Error: 70023: This function has not been implemented on this platform异常:
如果不想启用SSL,将server.xml中apr模式下ssl关闭即可:
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
将SSLEngine的值从on改成off即可:
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" />
Tomcat 6.x版本从6.0.32开始就默认支持apr。
Tomcat 7.x版本从7.0.30开始就默认支持apr。
因此,如果读者使用的Tomcat版本比较陈旧的话,强烈建议升级到最新的稳定版本。
Tomcat官网APR配置:http://tomcat.apache.org/tomcat-8.0-doc/apr.html#Linux
十、CentOS 7 yum 安装 Nginx
参考文章(http://blog.csdn.net/u012486840/article/details/52610320)
1.添加Nginx到YUM源
添加CentOS 7 Nginx yum资源库,打开终端,使用以下命令:
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
2.安装Nginx
在你的CentOS 7 服务器中使用yum命令从Nginx源服务器中获取来安装Nginx:
sudo yum install -y nginx
Nginx将完成安装在你的CentOS 7 服务器中。
3.启动Nginx
刚安装的Nginx不会自行启动。运行Nginx:
sudo systemctl start nginx.service
如果一切进展顺利的话,现在你可以通过你的域名或IP来访问你的Web页面来预览一下Nginx的默认页面;
nginx_default
如果看到这个页面,那么说明你的CentOS 7 中 web服务器已经正确安装。
CentOS 7 开机启动Nginx
sudo systemctl enable nginx.service
更多systemctl命令可查看《systemctl命令用法》
Nginx配置信息
网站文件存放默认目录
/usr/share/nginx/html
网站默认站点配置
/etc/nginx/conf.d/default.conf
自定义Nginx站点配置文件存放目录
/etc/nginx/conf.d/
Nginx全局配置
/etc/nginx/nginx.conf
Nginx启动
nginx -c nginx.conf
在这里你可以改变设置用户运行Nginx守护程序进程一样,和工作进程的数量得到了Nginx正在运行,等等。
Linux查看公网IP
您可以运行以下命令来显示你的服务器的公共IP地址:
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
十一、Nginx开启Gzip压缩大幅提高页面加载速度
参考文章(http://blog.csdn.net/kwy15732621629/article/details/78475021)
1、Vim打开Nginx配置文件
vim /usr/local/nginx/conf/nginx.conf
2、找到如下一段,进行修改
#开启Gzip
gzip on;
#不压缩临界值,大于1K的才压缩,一般不用改
gzip_min_length 1k;
#buffer,就是,嗯,算了不解释了,不用改
gzip_buffers 4 16k;
#用了反向代理的话,末端通信是HTTP/1.0,有需求的应该也不用看我这科普文了;有这句的话注释了就行了,默认是HTTP/1.1
#gzip_http_version 1.0;
#压缩级别,1-10,数字越大压缩的越好,时间也越长,看心情随便改吧
gzip_comp_level 2;
#进行压缩的文件类型,缺啥补啥就行了,JavaScript有两种写法,最好都写上吧,总有人抱怨js文件没有压缩,其实多写一种格式就行了
gzip_types text/plain application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
#跟Squid等缓存服务有关,on的话会在Header里增加"Vary: Accept-Encoding",我不需要这玩意,自己对照情况看着办吧
gzip_vary off;
#IE6对Gzip不怎么友好,不给它Gzip了
gzip_disable "MSIE [1-6]\.";
3、在Nginx配置模板 vi /etc/nginx/conf.d (.config作为后缀,文件名任意起)
# 站点配置
server {
listen 80;
server_name www.xxx.com;
index index.html index.htm;
proxy_set_header Host $host;
proxy_set_header X-real-ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
charset utf8;
location / {
proxy_http_version 1.1;
proxy_pass http://localhost:8080;
}
server {
server_name xxx.com;
rewrite ^/(.*)$ http://www.xxx.com/$1 permanent;
}
十一、Centos7 因内存 可用大小不足,被killed的解决办法
参考文章(https://www.cnblogs.com/kzwrcom/p/6422966.html)
Linux的内存分配采取的是一种更加积极的分配策略,它假设应用申请了内存空间后并不会立即去使用它,所以允许一定量的超售,当应用真的需要使用它的时候,操作系统可能已经通过回收了其他应用的内存空间而变得有能力去满足这个应用的需求,简单的说,就是允许应用申请比实际可分配空间(包括物理内存和Swap)更多的内存,这个特性称为OverCommit。
这个特性在Linux操作系统里面也是可配的,可以通过设置/proc/sys/vm/overcommit_memory为不同的值来调整OverCommit策略。
overcommit_memory可以取3个值:
0:默认值,由Linux内核通过一些启发式算法来决定是否超售和超售的大小,一般允许轻微的超售,拒绝一些明显不可能提供的请求,同时做一些规则限制,比如不同用户overcommit的大小也不一样。
1:允许,不做限制的超售,当然这个也不是无限大,还受到寻址空间的限制,32位系统最大可能只有4G,64位系统大概16T左右。
2:禁止,禁止超售,系统能够分配的内存不会超过swap+实际物理内存*overcommit_ratio,该值可以通过/proc/sys/vm/overcommit_ratio设置,默认50%。
如何修改该参数:
编辑 /etc/sysctl.conf 添加 vm.overcommit_memory=1
或者 sysctl vm.overcommit_memory=1
或者 echo 1 > /proc/sys/vm/overcommit_memory
以上动作完成后, 使用 sysctl -p 使新的参数生效。
十二、CentOS 6.4 性能调优之增加虚拟内存
参考文章(http://www.linuxidc.com/Linux/2014-09/106100.htm)
有一种可能是当时懒,没设置虚拟内存,查看虚拟内存的使用情况,# free,果然。。。
新增虚拟内存,步骤:
1:cd /home
2.获取1024M的文件块,具体划分多少swap交换分区,根据你的物理内存具体应用情况磁盘情况而定(一般是物理内存的1~2倍)
dd if=/dev/zero of=swapfile bs=4096 count=1572864
dd命令
功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。可以用该命令实现DOS下的diskcopy命令的作用。先用dd命令把软盘上的数据写成硬盘的一个寄存文件,再把这个寄存文件写入第二张软盘上,完成diskcopy的功能。需要注意的是,应该将硬盘上的寄存文件用rm命令删除掉。系统默认使用标准输入文件和标准输出文件。
语法:dd [选项]
if =输入文件(或设备名称)。
of =输出文件(或设备名称)。
ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。
skip = blocks 跳过读入缓冲区开头的ibs*blocks块。
obs = bytes 一次写入bytes字节,即写入缓冲区的字节数。
bs = bytes 同时设置读/写缓冲区的字节数(等于设置ibs和obs)。
cbs = byte 一次转换bytes字节。
count=blocks 只拷贝输入的blocks块。
3.创建swap文件
/sbin/mkswap swapfile
4.挂起swap文件
/sbin/swapon swapfile
5.检查swap是否正确:
/sbin/swapon -s
6.加到fstab文件中让系统引导时自动启动
vi /etc/fstab
在末尾增加以下内容(开机自动挂载):
var/swapfile swap swap defaults 0 0
这里有个问题!如果是阿里云的服务器,阿里云默认是不让用户使用swap,需要编辑/etc/rc.d/rc.local文件,将文件中的swapoff行注释或删掉。
#swapoff -a
我试过之后发现并不会开启挂载,坑爹。。还是得每次手工激活。。。
7.重启系统
reboot
8.挂载swapfile
swapon swapfile
9.查看swap交换分区情况
free -m
十三、阿里云tomcat启动慢
参考文章(https://yq.aliyun.com/articles/78917?commentId=10050)
最终解决方式:
yum install rng-tools安装rngd服务(熵服务)
systemctl start rngd启动服务
如果你的CPU不支持DRNG特性或者像我一样使用虚拟机,可以使用/dev/unrandom来模拟。
cp /usr/lib/systemd/system/rngd.service /etc/systemd/system
编辑/etc/systemd/system/rngd.service service小结,ExecStart=/sbin/rngd -f -r /dev/urandom
systemctl daemon-reload重新载入服务
systemctl restart rngd重启服务
这样安装了熵服务后问题就解决了,Tomcat启动又回到了以往的速度
执行命令ethtool -K eth0 tso off后,您可以执行一下 ethtool -k eth0 小写的k
看下 tcp-segmentation-offload: off 这项配置是不是off,如果是off 代表是关闭成功了。
在 catalina.sh 中加入这么一行:-Djava.security.egd=file:/dev/./urandom 即可。
在JVM环境中解决
打开$JAVA_PATH/jre/lib/security/java.security这个文件,找到下面的内容:
securerandom.source=file:/dev/urandom
替换成
securerandom.source=file:/dev/./urandom
十四、内存检测工具htop
参考文章(https://jingyan.baidu.com/article/d3b74d64e113211f77e609e9.html)
安装命令 yum install -y htop
执行命令 htop