第二十周

Posted 冯永庆的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第二十周相关的知识,希望对你有一定的参考价值。

1、总结tomcat优化方法

1、内存优化
JAVA_OPTS="-server -Xms1G -Xmx2G -Xss256K -Djava.awt.headless=true -Dfile.encoding=utf-8 -XX:MaxPermSize=256m -XX:PermSize=128M -XX:MaxPermSize=256M"
2、线程池调整
<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000" redirectPort="8443"acceptCount="500" maxThreads="400" />

2、java程序出现oom如何解决?什么场景下会出现oom?

OOM,全称“Out Of Memory”,翻译成中文就是“内存用完了”,来源于java.lang.OutOfMemoryError。
内存泄露:申请的内存在被使用完后没有释放,导致虚拟机不能再次使用该内存,此时这段内存就泄露了,因为申请该内存的对象不再使用该内存,而该段内存又不能被虚拟机分配给别人用。

内存溢出:申请的内存超出了JVM能提供的内存大小,此时称之为溢出。

Java heap space : 一般由于内存泄露或者堆的大小设置不当引起
PermGen space :更改方法区的大小来解决,使用类似-XX:PermSize=64m -XX:MaxPermSize=256m 的形式修改
StackOverflowError:可以通过虚拟机参数 -Xss 来设置栈的大小。

3、简述redis特点及其应用场景

Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型
性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

缓存
  缓存可以说是Redis最常用的功能之一了,合理的缓存不仅可以加快速度的访问速度,以及可以减少后端的压力(通常就是mysql的压力)。可以说,一个合理的缓存可以极大地提高网站的性能。

排行榜系统
  利用Redis的列表和有序集合的特点,可以制作排行榜系统,而排行榜系统目前在商城类、新闻类、博客类等等,都是比不可缺的。

4、对比redis的RDB、AOF模式的优缺点

快照是默认的持久化方式。这种方式是就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。可以通过配置设置自动做快照持久 化的方式。我们可以配置redis在n秒内如果超过m个key被修改就自动做快照
aof 比快照方式有更好的持久化性,是由于在使用aof持久化方式时,redis会将每一个收到的写命令都通过write函数追加到文件中(默认是 appendonly.aof)。当redis重启时会通过重新执行文件中保存的写命令来在内存中重建整个数据库的内容。当然由于os会在内核中缓存 write做的修改,所以可能不是立即写到磁盘上。这样aof方式的持久化也还是有可能会丢失部分修改。不过我们可以通过配置文件告诉redis我们想要 通过fsync函数强制os写入到磁盘的时机

5、实现redis哨兵,模拟master故障场景

vi redis6380.conf
port 6380
slaveof 127.0.0.1 6379

vi sentinel.conf
protected-mode no

vi sentineel6380.conf
port 26380
sentinel monitor mymaster 127.0.0.1 6379 2
protected-mode no

redis-server sentinel.conf --sentinel &
redis-server sentinel6380.conf --sentinel &

Replication

role:master
connected_slaves:1
slave0:ip=127.0.0.1

9459:X 04 Feb 2022 03:29:07.225 # +switch-master mymaster 127.0.0.1 6379 127.0.0.1 6380

以上是关于第二十周的主要内容,如果未能解决你的问题,请参考以下文章

第二十周

第二十周

-考研第二十周总结-

Python学习笔记第二十周

极客时间运维进阶训练营第二十周作业-待完成

python学习手册:第二十五章——oop