Archive for the ‘技术’ Category

openanolis Linux安装体验

Wednesday, February 3rd, 2021

官网地址: https://openanolis.org/ 据介绍OpenAnolis 完全兼容Centos8软件体系,阿里云与统信软件及众多芯片厂家和领先云计算厂家一起,在OpenAnolis社区中打造原生开源操作系统发行版,兼容国际Linux主流厂商,支持多硬件架构,打造一个面向未来的开源操作系统。 其中kernel 保持当前最新的stable 版本,一些最新的kernel技术都可以直接原生使用,而不用自己冒险升级内核。 简单介绍一下作为一个Linux用户的简单使用体验 安装体验上感觉与Centos8完全一致,除了LOGO图标变了以外没啥其他区别。 系统启动时,醒目的Linux kernel 5.10 还是非常让人兴奋的。 进入系统后,所有操作均与centos8一致。 最大的问题是系统默认不带软件源,跟华为openeuler是一个问题,作为比较流行的Linux系统,一般都自带丰富的软件生态,而这个根本啥也没有,让人咋安装软件? 虽然说所有的软件均可以自己编译、安装,但这个时间成本可太大了,初始安装(一般喜欢是minimal安装,自己安装所需软件即可)时系统没有wget命令,没有vim命令,最基础的命令都要一个一个去下载编译? 既然与centos8软件生态兼容,遂下载centos8的软件源尝试,实验证明确实是兼容的,此时可以与使用 dnf install vim wget -y 正常安装相关软件了。 但问题又来了,centos8马上要停更了,软件源不也废了吗? 之前有一台服务器安装了openeuler,手动配置了openeuler官方软件源,用了快一年的时间,一堆的漏洞愣是啥也不更新? 难道开箱方式不对? 作为一个普通的大众用户诉求其实很简单,只要稳定、安全,生命周期尽可能长些就够了。所谓宣传的那些高大上、花里胡哨的东西其实并不是特别关心,首先满足基本需求才是最重要的。

spring boot 2.3.x 升级 2.4.x注意事项

Tuesday, January 5th, 2021

近期spring boot 发布到了2.4.1 GA版,遂对项目进行了升级。 spring boot 2.3.x 升级 2.4.x注意事项 一、 自定义的配置类由继承WebMvcConfigurationSupport 需改为:实现 WebMvcConfigurer类 否则相关配置无效且报错 主要错误如下: 原有的jackson配置失效,比如时区设置、时间格式化设置、序列化配置都有问题。 默认首页配置无效。 拦截器配置问题等 实现 WebMvcConfigurer类之后,上述问题解决。 二、 url后缀升级以后无效,不能使用 *.json形式进行访问 在spring boot 2.3.x及以下版本中 ContentNegotiationConfigurer.favorPathExtension 属性默认为 true,升级以后,默认为false 且不支持后缀方式访问了,默认情况再加后缀会报404错误。

Centos8 报错:corruption of in-memory data detected

Tuesday, December 29th, 2020

客户服务器采用的是 华为RH2288v3,突然之间凌晨宕机了,系统为centos8。 根据监测显示是在00:38宕掉的,无论如何无法开机。 根据检测内存坏掉了,第一次遇到内存坏掉的问题,其中一根内存拔掉之后可以开机 ,开机之后报错为: 根据提示进入到了 “you are in emergency mode” 模式,输入root密码,进入系统。 进入系统后 通过”df -h”命令发现home挂载点不见了,而 /etc/fstab 里开机 会自动挂载,而又挂载不动自然无法进入到系统了。 终于恢复正常了。

debian安装docker后无法login的问题

Friday, December 11th, 2020

背景: 由于centos即将停更,后续业务系统准备迁移至debian系统,由于之前所有业务系统全是centos系列产品,必须对debian进行相关测试,今天发现刚装完docker发现无法login登录。 问题现象: docker login 登录时报错如下: 系统环境: Debian 10.7 buster Docker版本:Docker version 20.10.0, build 7287ab3 解决办法: sudo apt-get install gnupg2 pass -y

RHEL7.X 切换Centos源

Saturday, July 18th, 2020

有些客户很奇怪的思维,提供个操作系统非要用rhel版本的,又不想花钱,然后又要进行等保检测,一检测好几百个高危漏洞。 这不又有客户提供了RHEL7.X版本系统,安装个软件异常费劲,将其转换为centos源吧,这样安装软件还方便些。 一、首先卸载原来的yum 二、安装新yum安装包 打开国内华为源: https://repo.huaweicloud.com/centos/7/os/x86_64/Packages/ 找到对应的版本文件下载 安装下载的文件 下载华为源 然后将CentOS-Base.repo 中的 $releasever 替换为7,因为系统不识别该变量,准备更新 关闭红帽的注册订阅提示 在/etc/yum/pluginconf.d/subscription-manager.conf文件下 设置:enabled=0

spring boot内嵌undertow配置一定要优化

Friday, July 17th, 2020

问题 接上篇文章 K8S集群中高并发应用undertow线程数不足引起的重启,产生的原因则是使用的undertow的系统默认配置,undertow线程数不足引起的问题。 建议 undertow默认配置情况下,官方默认配置的是 CPU核数*8,比如8核CPU,实际工作线程数也就8*8=64,这个配置对于高并发场景来看,一台8核CPU的机器一般内存都会32G或以上,即使跑满64线程,占用的资源远远无法充分利用该机器的性能。 当然啦,官方也是建议工作线程数的配置,取决于你机器的负载情况,其实也就是跟你的具体业务有关,我们现在的业务场景,64线程跑满的情况,CPU利用率仅仅百分之十几、CPU内存远远没利用完,再有请求过来,undertow则直接阻塞队列中,无法正常处理,资源浪费严重,还导致了服务中断的情况。 因此,从实际情况来看,一定不要采用undertow的官方默认配置。像我们线上业务来看,每个API接口业务耗时大多数在10ms以内,少部分耗时30-50ms时间,单接口耗用资源不大。 修改undertow配置 worker-threads=256,单节点可以承载256的并发任务,剩下的就是根据实际业务情况动态扩展节点数量即可。    io-threads:IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接,默认设置每个CPU核心一个线程,不可设置过大,否则启动项目会报错:打开文件数过多。   worker-threads:阻塞任务线程池,当执行类似servlet请求阻塞IO操作,undertow会从这个线程池中取得线程。它的值取决于系统线程执行任务的阻塞系数,默认值是 io-threads*8,这里我们手动指定相应的值。 server: port: 1112 undertow: io-threads: 8 worker-threads: 256


正在读取数据……