-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
117 additions
and
54 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
### 内存不足,导致上传文件失败 | ||
|
||
HTTP请求上传文件 | ||
|
||
报错如下 | ||
|
||
```shell | ||
2024-05-09 11:09:36.896 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO c.s.c.p.b.s.s.service.impl.ServiceInfoServiceImpl - start upload image fi | ||
le to remote --- | ||
2024-05-09 11:09:38.672 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - I/O exception (java.net.Socket | ||
Exception) caught when processing request to {s}->https://10.20.37.101:18086: Connection reset | ||
2024-05-09 11:09:38.673 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - Retrying request to {s}->https | ||
://10.20.37.101:18086 | ||
2024-05-09 11:09:40.552 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - I/O exception (java.net.Socket | ||
Exception) caught when processing request to {s}->https://10.20.37.101:18086: Connection reset | ||
2024-05-09 11:09:40.552 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - Retrying request to {s}->https | ||
://10.20.37.101:18086 | ||
2024-05-09 11:09:42.355 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - I/O exception (java.net.Socket | ||
Exception) caught when processing request to {s}->https://10.20.37.101:18086: Connection reset | ||
2024-05-09 11:09:42.355 [ccsp-aggregate-pt,TASK,6727263067663369608,] [task-2] INFO org.apache.http.impl.execchain.RetryExec - Retrying request to {s}->https | ||
://10.20.37.101:18086 | ||
``` | ||
|
||
宿主机server端的内存不足,比上传的文件要小,导致无法接受,从而直接断联了HTTP请求。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,54 +1,63 @@ | ||
### Redis 是什么 | ||
|
||
redis 是一个开源的、使用 C 语言编写的、支持网络交互的、可基于内存也可持久化的 Key-Value 数据库。[官网](https://redis.io)。 | ||
|
||
目前,Vmware 在资助着 redis 项目的开发和维护。 | ||
|
||
redis 的作者,他叫 Salvatore Sanfilippo,网名是 antirez,去他的博客逛逛,地址是 antirez.com,当然也可以去 follow 他的 github,地址是[http://github.com/antirez](http://github.com/antirez)。 | ||
|
||
Redis 是 K-V 存储的典型代表,它是一款开源(基于 BSD 许可)的高性能 K-V 缓存和存储系统。Redis 的 Value 是具体的数据结构,包括 string、hash、list、set、sorted set、bitmap 和 hyperloglog,所以常常被称为数据结构服务器。 | ||
|
||
### Redis 数据结构 | ||
|
||
redis 是一种高级的 key:value 存储系统,其中 value 支持五种数据类型: | ||
|
||
1. 字符串(strings) | ||
2. 字符串列表(lists) | ||
3. 字符串集合(sets) | ||
4. 有序字符串集合(sorted sets) | ||
5. 哈希(hashes) | ||
1. hashes 存的是字符串和字符串值之间的映射,比如一个用户要存储其全名、姓氏、年龄等等,就很适合使用哈希。 | ||
|
||
key 的命名规则: | ||
|
||
1. key 不要太长,尽量不要超过 1024 字节,这不仅消耗内存,而且会降低查找的效率; | ||
2. key 也不要太短,太短的话,key 的可读性会降低; | ||
3. 在一个项目中,key 最好使用统一的命名模式,例如 user:10000:passwd。 | ||
|
||
### Redis 持久化 | ||
|
||
redis 提供了两种持久化的方式,分别是 RDB(Redis DataBase)和 AOF(Append Only File)。 | ||
|
||
RDB,简而言之,就是在不同的时间点,将 redis 存储的数据生成快照并存储到磁盘等介质上; | ||
AOF,则是换了一个角度来实现持久化,那就是将 redis 执行过的所有写指令记录下来,在下次 redis 重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复了。 | ||
|
||
其实 RDB 和 AOF 两种方式也可以同时使用,在这种情况下,如果 redis 重启的话,则会优先采用 AOF 方式来进行数据恢复,这是因为 AOF 方式的数据恢复完整度更高。 | ||
|
||
如果你没有数据持久化的需求,也完全可以关闭 RDB 和 AOF 方式,这样的话,redis 将变成一个纯内存数据库,就像 memcache 一样。 | ||
|
||
### Redis 主从 | ||
|
||
像 MySQL 一样,redis 是支持主从同步的,而且也支持一主多从以及多级从结构。 | ||
|
||
主从结构,一是为了纯粹的冗余备份,二是为了提升读性能,比如很消耗性能的 SORT 就可以由从服务器来承担。 | ||
|
||
redis 的主从同步是异步进行的,这意味着主从同步不会影响主逻辑,也不会降低 redis 的处理性能。 | ||
|
||
主从架构中,可以考虑关闭主服务器的数据持久化功能,只让从服务器进行持久化,这样可以提高主服务器的处理性能。 | ||
|
||
在主从架构中,从服务器通常被设置为只读模式,这样可以避免从服务器的数据被误修改。但是从服务器仍然可以接受 CONFIG 等指令,所以还是不应该将从服务器直接暴露到不安全的网络环境中。如果必须如此,那可以考虑给重要指令进行重命名,来避免命令被外人误执行。 | ||
|
||
### 参考资料 | ||
|
||
- [张彦飞-Redis 6 中的多线程实现方式比我预期的要差](https://zhuanlan.zhihu.com/p/523368070) | ||
- [张彦飞-深度解析单线程的 Redis 如何做到每秒数万 QPS 的超高处理能力!](https://zhuanlan.zhihu.com/p/512502929) | ||
### Redis 是什么 | ||
|
||
redis 是一个开源的、使用 C 语言编写的、支持网络交互的、可基于内存也可持久化的 Key-Value 数据库。[官网](https://redis.io)。 | ||
|
||
目前,Vmware 在资助着 redis 项目的开发和维护。 | ||
|
||
redis 的作者,他叫 Salvatore Sanfilippo,网名是 antirez,去他的博客逛逛,地址是 antirez.com,当然也可以去 follow 他的 github,地址是[http://github.com/antirez](http://github.com/antirez)。 | ||
|
||
Redis 是 K-V 存储的典型代表,它是一款开源(基于 BSD 许可)的高性能 K-V 缓存和存储系统。Redis 的 Value 是具体的数据结构,包括 string、hash、list、set、sorted set、bitmap 和 hyperloglog,所以常常被称为数据结构服务器。 | ||
|
||
### Redis 数据结构 | ||
|
||
redis 是一种高级的 key:value 存储系统,其中 value 支持五种数据类型: | ||
|
||
1. 字符串(strings) | ||
2. 字符串列表(lists) | ||
3. 字符串集合(sets) | ||
4. 有序字符串集合(sorted sets) | ||
5. 哈希(hashes) | ||
1. hashes 存的是字符串和字符串值之间的映射,比如一个用户要存储其全名、姓氏、年龄等等,就很适合使用哈希。 | ||
|
||
key 的命名规则: | ||
|
||
1. key 不要太长,尽量不要超过 1024 字节,这不仅消耗内存,而且会降低查找的效率; | ||
2. key 也不要太短,太短的话,key 的可读性会降低; | ||
3. 在一个项目中,key 最好使用统一的命名模式,例如 user:10000:passwd。 | ||
|
||
### Redis 持久化 | ||
|
||
redis 提供了两种持久化的方式,分别是 RDB(Redis DataBase)和 AOF(Append Only File)。 | ||
|
||
RDB,简而言之,就是在不同的时间点,将 redis 存储的数据生成快照并存储到磁盘等介质上; | ||
AOF,则是换了一个角度来实现持久化,那就是将 redis 执行过的所有写指令记录下来,在下次 redis 重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复了。 | ||
|
||
其实 RDB 和 AOF 两种方式也可以同时使用,在这种情况下,如果 redis 重启的话,则会优先采用 AOF 方式来进行数据恢复,这是因为 AOF 方式的数据恢复完整度更高。 | ||
|
||
如果你没有数据持久化的需求,也完全可以关闭 RDB 和 AOF 方式,这样的话,redis 将变成一个纯内存数据库,就像 memcache 一样。 | ||
|
||
### 四种模式 | ||
|
||
[深入理解Redis的单机、主从、哨兵、集群四种模式](https://baijiahao.baidu.com/s?id=1761339110124241069&wfr=spider&for=pc) | ||
|
||
#### 单机 | ||
#### 主从 | ||
|
||
像 MySQL 一样,redis 是支持主从同步的,而且也支持一主多从以及多级从结构。 | ||
|
||
主从结构,一是为了纯粹的冗余备份,二是为了提升读性能,比如很消耗性能的 SORT 就可以由从服务器来承担。 | ||
|
||
redis 的主从同步是异步进行的,这意味着主从同步不会影响主逻辑,也不会降低 redis 的处理性能。 | ||
|
||
主从架构中,可以考虑关闭主服务器的数据持久化功能,只让从服务器进行持久化,这样可以提高主服务器的处理性能。 | ||
|
||
在主从架构中,从服务器通常被设置为只读模式,这样可以避免从服务器的数据被误修改。但是从服务器仍然可以接受 CONFIG 等指令,所以还是不应该将从服务器直接暴露到不安全的网络环境中。如果必须如此,那可以考虑给重要指令进行重命名,来避免命令被外人误执行。 | ||
|
||
#### 哨兵 | ||
#### 集群 | ||
|
||
|
||
### 参考资料 | ||
|
||
- [张彦飞-Redis 6 中的多线程实现方式比我预期的要差](https://zhuanlan.zhihu.com/p/523368070) | ||
- [张彦飞-深度解析单线程的 Redis 如何做到每秒数万 QPS 的超高处理能力!](https://zhuanlan.zhihu.com/p/512502929) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -244,3 +244,10 @@ man pstree | |
#展示进程命令行 | ||
pstree -a | ||
``` | ||
|
||
### 创建大文件 | ||
|
||
```shell | ||
fallocate -l 1G largefile | ||
truncate -s 1G largefile | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
### VLAN | ||
|
||
VLAN(Virtual LAN),翻译成中文是“虚拟局域网”。LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。VLAN所指的LAN特指使用路由器分割的网络(也就是广播域). | ||
|
||
VLAN作为传统的网络隔离技术,在标准定义中VLAN的数量只有4000个左右,无法满足大型数据中心的租户间隔离需求。另外,VLAN的二层范围一般较小且固定,无法支持虚拟机大范围的动态迁移. | ||
|
||
### VXLAN | ||
|
||
VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网),是由IETF定义的NVO3(Network Virtualization over Layer 3)标准技术之一,是对传统VLAN协议的一种扩展。VXLAN的特点是将L2的以太帧封装到UDP消息(即L2 over L4)中,并在L3网络中传输。是overlay网络的实现技术之一。 | ||
|
||
vxlan解决了什么关键问题 | ||
|
||
虚拟化服务器动态迁移 | ||
|
||
服务器从该二层交换机的一个端口迁移到另一个端口时,IP地址是可以保持不变的,VXLAN利用此设计理念,在数据中心IP网络基础上,构建一张全互联的二层隧道虚拟网络,保证任意两点之间都能通过VXLAN隧道来通信,并忽略底层网络的结构和细节,VXLAN为它们将整个数据中心基础网络虚拟成了一台巨大的“二层交换机(大二层)”,所有服务器都连接在这台虚拟二层交换机上。 | ||
|
||
大规模数据中心,海量租户隔离能力 | ||
|
||
在标准定义中VLAN的数量只有4000个左右,无法满足大型数据中心的租户间隔离需求。 VXLAN完美地弥补了VLAN的上述不足,一方面通过VXLAN中的24比特VNI字段。提供多达16M租户的标识能力 | ||
|
||
### 参考 | ||
|
||
- [csdn-vlan和vxlan](https://blog.csdn.net/ecloud_developer/article/details/120526041) |