配置Tomcat性能优化
配置Tomcat性能优化
📒博客主页: 微笑的段嘉许博客主页
💻微信公众号:微笑的段嘉许
🎉欢迎关注🔎点赞👍收藏⭐留言📝
📌本文由微笑的段嘉许原创!
📆CSDN首发时间:🌴2022年2月日20🌴
✉️坚持和努力一定能换来诗与远方!
🙏作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!
⭐本文介绍⭐
保姆级教程通过一个综合实验案例手把手教你Tomcat的安装配置与性能优化。
📌导航小助手📌
文章目录
- 配置Tomcat性能优化
- 📝理论讲解:
- 详细介绍
- 名称由来
- 📖实验配置与实现:
- 一、Centos02安装DNS解析www.duan.com,www.jia.com,www.xu.com访问网站客户端访问验证
- 1、配置网卡服务
- 2、安装DNS服务
- 3、修改DNS配置文件
- 二、Centos02安装tomcat发布动态网站jpress使用www.duan.com访问,配置虚拟主机通过www.jia.con和www.xu.com访问不同的虚拟主机
- 1、部署tomcat
- 2、tomcat发布动态网站
- 3、配置tomcat虚拟主机
- 三、tomcat性能优化
- 1、配置tomcat管理控制台监控线程和tomcat的工作模式
- 2、优化tomcat线程
- 3、JVM性能调优
- 4、jmeter压力测试
📝理论讲解:
详细介绍
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。Tomcat最新版本为10.0.23。
名称由来
Tomcat最初是由Sun的软件架构师詹姆斯·邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由Sun贡献给Apache软件基金会。由于大部分开源项目O’Reilly都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat(英语公猫或其他雄性[猫科动物)。而O’Reilly出版的介绍Tomcat的书籍(ISBN 0-596-00318-8)[1]的封面也被设计成了一个公猫的形象。而Tomcat的Logo兼吉祥物也被设计为一只公猫。
📖实验配置与实现:
推荐步骤:
Centos02安装DNS解析www.duan.com,www.jia.com,www.xu.com访问网站客户端访问验证
Cenros01安装tomcat发布动态网站jpress使用www.duan.com访问,配置虚拟主机通过www.jia.com和www.xu.com访问不同的虚拟主机
tomcat性能优化
一、Centos02安装DNS解析www.duan.com,www.jia.com,www.xu.com访问网站客户端访问验证
1、配置网卡服务
1)配置IP地址和DNS
[root@centos02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32 //进入网卡配置文件
[root@centos02 ~]# systemctl restart network //重新启动网卡服务
[root@centos02 ~]# cat /etc/resolv.conf //查看DNS配置是否生效
# Generated by NetworkManager
nameserver 192.168.100.20

2、安装DNS服务
1)挂载系统光盘
[root@centos02 ~]# mount /dev/cdrom /mnt/ //挂载系统光盘
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos02 ~]# ls /mnt/ //查看系统光盘是否挂载成功
CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7
EFI images Packages RPM-GPG-KEY-CentOS-Testing-7
EULA isolinux repodata TRANS.TBL
2)安装DNS程序包
[root@centos02 ~]# rpm -ivh /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm
警告:/mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [100%]
正在升级/安装...1:bind-32:9.9.4-50.el7 ################################# [100%]
[root@centos02 ~]# rpm -ivh /mnt/Packages/bind-chroot-9.9.4-50.el7.x86_64.rpm
警告:/mnt/Packages/bind-chroot-9.9.4-50.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [100%]
正在升级/安装...1:bind-chroot-32:9.9.4-50.el7 ################################# [100%]
3、修改DNS配置文件
1)修改DNS主配置文件
[root@centos02 ~]# echo "" > /etc/named.conf //清空DNS主配置文件
[root@centos02 ~]# vim /etc/named.conf //进入DNS主配置文件
---
options {listen-on port 53 { any ;};
};
zone "duan.com" IN {type master;file "var/named/duan.com.zone";
};
zone "jia.com" IN {type master;file "var/named/jia.com.zone";
};
zone "xu.com" IN {type master;file "var/named/xu.com.zone";
};
---
[root@centos02 ~]# named-checkconf /etc/named.conf //检查主配置文件修改是否有误

2)修改第一个DNS区域配置文件
[root@centos02 ~]# vim /var/named/duan.com.zone //进入第一个DNS区域配置文件
---
$TTL 86400
@ SOA duan.com. root.duan.com. (20230217101H15M1W1D
)
@ NS centos02.duan.com.
centos02 A 192.168.100.20
www A 192.168.100.10
---
[root@centos02 ~]# vim /var/named/duan.com.zone
[root@centos02 ~]# named-checkzone duan.com /var/named/duan.com.zone
zone duan.com/IN: loaded serial 2023021710
OK //检查主配置文件修改是否有误

3)修改第二个DNS区域配置文件
[root@centos02 ~]# cp /var/named/duan.com.zone /var/named/jia.com.zone //复制第一个区域配置文件到/var/namedjia.com.zone
[root@centos02 ~]# vim /var/named/jia.com.zone //进入第二个区域配置文件
---
:%s/duan.com/jia.com/g //把duan.com替换为jia.com
$TTL 86400
@ SOA jia.com. root.jia.com. (20230217101H15M1W1D
)
@ NS centos02.jia.com.
centos02 A 192.168.100.20
www A 192.168.100.10
---
[root@centos02 ~]# named-checkzone jia.com /var/named/jia.com.zone //检查主配置文件修改是否有误
zone jia.com/IN: loaded serial 2023021710
OK

4)修改第三个DNS区域配置文件
[root@centos02 ~]# cp /var/named/duan.com.zone /var/named/xu.com.zone //复制第一个区域配置文件到/var/named/xu.com.zone
[root@centos02 ~]# vim /var/named/xu.com.zone //进入第三个区域配置文件
---
:%s/duan.com/xu.com/g //把duan.com替换为xu.com
$TTL 86400
@ SOA xu.com. root.xu.com. (20230217101H15M1W1D
)
@ NS centos02.xu.com.
centos02 A 192.168.100.20
www A 192.168.100.10
---
[root@centos02 ~]# named-checkzone xu.com /var/named/xu.com.zone
zone xu.com/IN: loaded serial 2023021710
OK

5)启动DNS服务设置开机自启
[root@centos02 ~]# systemctl start named //启动DNS服务
[root@centos02 ~]# systemctl enable named //设置开机自启
[root@centos02 ~]# netstat -anptu | grep named //监听端口
tcp 0 0 192.168.100.20:53 0.0.0.0:* LISTEN 40870/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 40870/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 40870/named
tcp6 0 0 ::1:953 :::* LISTEN 40870/named
udp 0 0 192.168.122.1:53 0.0.0.0:* 40870/named
udp 0 0 192.168.100.20:53 0.0.0.0:* 40870/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 40870/named
二、Centos02安装tomcat发布动态网站jpress使用www.duan.com访问,配置虚拟主机通过www.jia.con和www.xu.com访问不同的虚拟主机
1、部署tomcat
1)解压源代码程序
[root@centos01 ~]# rz //上传tomcat源代码程序
z waiting to receive.**B0100000023be50
[root@centos01 ~]# ls //查看是否上传成功
anaconda-ks.cfg initial-setup-ks.cfg 模板 图片 下载 桌面
apache-tomcat-8.5.50.tar.gz 公共 视频 文档 音乐
---
[root@centos01 ~]# tar zxf ./apache-tomcat-8.5.50.tar.gz -C /usr/src/ //解压tomcat源代码程序
[root@centos01 ~]# mv /usr/src/apache-tomcat-8.5.50/ /usr/local/tomcat //剪切tomcat源代码程序到/usr/local/tomcatm目录
2)修改tomcat主配置文件
[root@centos01 ~]# vim /usr/local/tomcat/conf/server.xml //进入tomcat主配置文件
---
73 <Connector port="80" protocol="HTTP/1.1" //监听80端口74 connectionTimeout="20000"75 redirectPort="8443" />
152 <Host name="www.duan.com" appBase="webapps" //域名和网站根目录
153 unpackWARs="true" autoDeploy="true">
154 <Valve className="org.apache.catalina.valves.AccessLogValve" directo ry="logs"
155 prefix="www.duan.com_access_log" suffix=".txt"
156 pattern="%h %l %u %t "%r" %s %b" />
157 </Host>
---
[root@centos01 ~]# /usr/local/tomcat/bin/startup.sh //启动tomcat服务
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@centos01 ~]# netstat -anptu | grep java //监听端口
tcp6 0 0 :::80 :::* LISTEN 40414/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 40414/java
tcp6 0 0 :::8009 :::* LISTEN 40414/java


3)使用win10虚拟机验证访问tomcat默认网站

2、tomcat发布动态网站
1)上传项目到tomcat的根目录
[root@centos01 ~]# cd /usr/local/tomcat/webapps/ //切换到tomcat根目录
[root@centos01 webapps]# rz //上传项目
z waiting to receive.**B0100000023be50
[root@centos01 webapps]# ls //查看是否上传成功
docs examples host-manager jpress-v5.0.8.war manager ROOT
[root@centos01 webapps]# mv jpress-v5.0.8.war jpress.war //重命名
[root@centos01 webapps]# ls //查看
docs examples host-manager jpress jpress.war manager ROOT
2)安装数据库
[root@centos01 ~]# mount /dev/cdrom /mnt/ //挂在系统光盘
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos01 ~]# ls /mnt/ //查看光盘是否挂载成功
CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7
EFI images Packages RPM-GPG-KEY-CentOS-Testing-7
EULA isolinux repodata TRANS.TBL
[root@centos01 ~]# rm -rf /etc/yum.repos.d/CentOS-* //删除系统自带的yum源
[root@centos01 ~]# ls /etc/yum.repos.d/ //查看本地yum源目录
local.repo
[root@centos01 ~]# cat /etc/yum.repos.d/local.repo //查看本地yum源
[local]
name=centos
baseurl=file:///mnt
enabled=1
gpgcheck=0
---
[root@centos01 ~]# yum -y install mariadb mariadb-server //安装数据库
[root@centos01 ~]# systemctl start mariadb //启动数据库
[root@centos01 ~]# systemctl enable mariadb //设置开机自启
[root@centos01 ~]# mysqladmin -uroot password //创建管理数据库账户名为root,设置密码
New password: //输入密码
Confirm new password: //确定密码
[root@centos01 ~]# mysql -uroot -ppwd@123 //登录数据库
MariaDB [(none)]> create database jpress charset utf8; //创建数据库名字支持中文
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all on jpress.* to 'duanjiaxu'@'localhost' identified by 'pwd@123'; //授权用户访问,授权用户为duanjaixu密码为pwd@123
Query OK, 0 rows affected (0.00 sec)

3)在win10客户端安装jdk


等待安装完成:

4)使用win10虚拟机验证





3、配置tomcat虚拟主机
1)创建虚拟主机网站根目录
[root@centos01 ~]# mkdir -p /www/jia //创建虚拟网站根目录
[root@centos01 ~]# mkdir -p /www/xu
[root@centos01 ~]# echo "www.jia.com" > /www/jia/index.jsp //设置网站主页
[root@centos01 ~]# echo "www.xu.com" > /www/xu/index.jsp
2)修改tomcat主配置文件
[root@centos01 ~]# vim /usr/local/tomcat/conf/server.xml //进入tomcat主配置文件
---
152 <Host name="www.duan.com" appBase="webapps" //第一虚拟主机
153 unpackWARs="true" autoDeploy="true">
154 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
155 prefix="www.duan.com_access_log" suffix=".txt"
156 pattern="%h %l %u %t "%r" %s %b" />
157 </Host>
158 <Host name="www.jia.com" appBase="webapps" //第二个虚拟主机
159 unpackWARs="true" autoDeploy="true">
160 <Context docBase="/www/jia/" path="" reloadble="fales"/>
161 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
162 prefix="www.duan.com_access_log" suffix=".txt"
163 pattern="%h %l %u %t "%r" %s %b" />
164 </Host>
165 <Host name="www.xu.com" appBase="webapps" //第三个虚拟主机
166 unpackWARs="true" autoDeploy="true">
167 <Context docBase="/www/xu/" path="" reloadble="fales"/>
168 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
169 prefix="www.duan.com_access_log" suffix=".txt"
170 pattern="%h %l %u %t "%r" %s %b" />
171 </Host>

3)重新启动tomcat服务
[root@centos01 ~]# /usr/local/tomcat/bin/shutdown.sh //停止tomcat服务
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@centos01 ~]# /usr/local/tomcat/bin/startup.sh //启动tomcat服务
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@centos01 ~]# netstat -anptu | grep java //监听网卡
tcp6 0 0 :::80 :::* LISTEN 41936/java
tcp6 0 0 :::8009 :::* LISTEN 41936/java
4)使用win10虚拟机验证


三、tomcat性能优化
1、配置tomcat管理控制台监控线程和tomcat的工作模式
1)修改访问tomcat管理控制台
[root@centos01 ~]# vim /usr/local/tomcat/conf/tomcat-users.xml //进入tomcat管理控制台配置文件
---
44 <role rolename="manager-gui"/>45 <role rolename="manager-script"/>46 <role rolename="manager-jmx"/>47 <role rolename="manager-status"/>48 <role rolename="admin-gui"/>49 <role rolename="admin-script"/>50 <user username="admin" password="pwd@123" roles="manager-gui,manager-scrip t,manager-jmx,manager-status,admin-gui,admin-script"/> //创建用户名和设置密码,授权角色51 </tomcat-users>
---
[root@centos01 ~]# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml //进入访问控制配置文件
---18 <Context antiResourceLocking="false" privileged="true" >19 <Valve className="org.apache.catalina.valves.RemoteAddrValve"20 allow="192\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> //修改为19221 <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Inte ger|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter \$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>22 </Context>
---
[root@centos01 ~]# /usr/local/tomcat/bin/shutdown.sh //停止tomcat服务
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@centos01 ~]# /usr/local/tomcat/bin/startup.sh //启动tomcat服务
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@centos01 ~]# netstat -anptu | grep java //监听网卡服务
tcp6 0 0 :::80 :::* LISTEN 42514/java
tcp6 0 0 :::8009 :::* LISTEN 42514/java

2)使用win10虚拟机验证



2、优化tomcat线程
1)修改tomcat主配置文件
[root@centos01 ~]# vim /usr/local/tomcat/conf/server.xml //进入tomcat主配置文件
---73 <Connector port="80" protocol="HTTP/1.1"74 connectionTimeout="20000" //连接请求超时时间20000毫秒75 redirectPort="8443" //加密端口76 maxTheads="15000" //最大线程1500077 minspareTheads="2000" //最下空闲线程200078 acceptCount="2000" //列队保存2000个请求,拉长请求时间79 />

3、JVM性能调优
1)设置虚拟机的内存为4GB

2)修改最大内存
[root@centos01 ~]# vim /usr/local/tomcat/bin/catalina.sh //进入配置文件
---
JAVA_OPTS="-server -Xms1024m -Xmx4096m -XX:NewSize=50m -XX:MaxNewSize=100m"
---
[root@centos01 ~]# /usr/local/tomcat/bin/shutdown.sh //停止tomcat服务
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@centos01 ~]# /usr/local/tomcat/bin/startup.sh //启动tomcat服务
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@centos01 ~]# netstat -anptu | grep java //监听网卡服务
tcp6 0 0 :::80 :::* LISTEN 45095/java
tcp6 0 0 :::8009 :::* LISTEN 45095/java
2)使用win10虚拟机验证
JVM性能优化前:

JVM性能优化后:

4、jmeter压力测试
1)在win10虚拟机上安装jmeter压力测试工具


配置压力测试的服务器域名和端口号、协议、路径

配置线程数

异常百分之零

🙏作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!

相关文章:
配置Tomcat性能优化
配置Tomcat性能优化 📒博客主页: 微笑的段嘉许博客主页 💻微信公众号:微笑的段嘉许 🎉欢迎关注🔎点赞👍收藏⭐留言📝 📌本文由微笑的段嘉许原创! Ǵ…...
Hive3 安装方式详解,datagrid自定义驱动连接hive
1 Hive的安装方式 hive的安装一共有三种方式:内嵌模式、本地模式、远程模式。 元数据服务(metastore)作用是:客户端连接metastore服务,metastore再去连接MySQL数据库来存取元数据。有了metastore服务,就可以有多个客户端同时连接…...
约束优化:约束优化的三种序列无约束优化方法(罚函数法)
文章目录约束优化:约束优化的三种序列无约束优化方法(罚函数法)外点罚函数法L2-罚函数法:非精确算法对于等式约束对于不等式约束L1-罚函数法:精确算法内点罚函数法:障碍函数法参考文献约束优化:…...
你真的会做APP UI自动化测试吗?我敢打赌百分之九十的人都不知道这个思路
目录 前言 一,开发语言选择 二,UI测试框架选择 1,Appium 2,Airtest 3,选择框架 三,单元测试框架选择 四,测试环境搭建 1,测试电脑选择 2,测试手机选择 3&#…...
GIT:【基础三】Git工作核心原理
目录 一、Git本地四个工作区域 二、Git提交文件流程 一、Git本地四个工作区域 工作目录(Working Directory):电脑上存放开发代码的地方。暂存区(Stage/Index):用于l临时存放改动的文件,本质上只是一个文件,保存即将提交到文件列…...
【1.12 golang中的指针】
1. 指针 区别于C/C中的指针,Go语言中的指针不能进行偏移和运算,是安全指针。 要搞明白Go语言中的指针需要先知道3个概念:指针地址、指针类型和指针取值。 1.1. Go语言中的指针 Go语言中的函数传参都是值拷贝,当我们想要修改某…...
十五.程序环境和预处理
文章目录一.程序翻译环境和执行环境1.ANSI C 标准2.程序的翻译环境和执行环境二.程序编译和链接1.翻译环境2.编译本身的几个阶段3.运行环境三.预处理1.预定义符号2.#define(1)#define定义标识符(2)#define定义宏(3&…...
高并发系统设计之负载均衡
本文已收录至Github,推荐阅读 👉 Java随想录 文章目录DNS负载均衡Nginx负载均衡负载均衡算法负载均衡配置超时配置被动健康检查与主动健康检查LVS/F5Nginx当我们的应用单实例不能支撑用户请求时,此时就需要扩容,从一台服务器扩容到…...
嵌入式Linux从入门到精通之第十四节:Linux IO控制技术
目录 设备控制概述 操作设备文件函数 监听文件描述符 示例 设备控制概述 对于硬件设备,Linux采用了与裸机完全不同的机制进行管理。 Linux下的所有硬件(IO、键盘、鼠标等)均是以文件的形式进行统一管理的,每个设备在/dev/目录下都有一个设备文件与之对应。操作相应的文件…...
/etc/fstab文件
文件/etc/fstab存放的是系统中的文件系统信息,当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录。当正确的设置了该文件,则可以通过mount /directoryname命令来加载一个文件…...
深度学习神经网络基础知识(一) 模型选择、欠拟合和过拟合
专栏:神经网络复现目录 深度学习神经网络基础知识(一) 本文讲述神经网络基础知识,具体细节讲述前向传播,反向传播和计算图,同时讲解神经网络优化方法:权重衰减,Dropout等方法,最后进行Kaggle实…...
同样做软件测试,为什么有人月入3k-5k,有人能拿到17-20k?
同样做软件测试,为什么有人月入3k-5k,有人能拿到17-20k? 虽然各大培训机构一直鼓吹软件测试行业薪资高,但是依旧有一些拿着3-5k薪资,甚至找不到软件测试工作的人。 先来看一些例子: 小A在一家培训机构学完…...
如何运行YOLOv5的代码,实现目标识别
YOLOv5和v8都由Ultralytics这家创业公司开发的https://github.com/ultralytics/yolov5环境配置git clone https://github.com/ultralytics/yolov5.git作者要求python3.6(我用的3.8也能跑通)torch1.7.0pip install -r requirements_my_version.txtrequire…...
【正点原子FPGA连载】第十四章SD卡读写TXT文本实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南
1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第十四章SD卡读写…...
【人工智能AI :Open AI】我想写一本书,书名是《中国文学史》,帮我列一下目录,细化到三级目录,不少于2000字。
我想写一本书,书名是《中国文学史》,帮我列一下目录,细化到三级目录,不少于2000字。 中国文学史 第一章 经典文学 1.1 先秦文学 1.1.1 先秦诗歌 1.1.1.1 小雅 1.1.1.2 大雅 1.1.1.3 颂 1.1…...
「文档数据库之争」MongoDB和CouchDB的比较
MongoDB和CouchDB都是基于文档的NoSQL数据库类型。文档数据库又称mdocument store,通常用于存储半结构化数据的文档格式及其详细描述。它允许创建和更新程序,而不需要引用主模式。移动应用程序中的内容管理和数据处理是可以应用文档存储的两个字段。Mong…...
c++11 标准模板(STL)(std::unordered_set)(三)
定义于头文件 <unordered_set> template< class Key, class Hash std::hash<Key>, class KeyEqual std::equal_to<Key>, class Allocator std::allocator<Key> > class unordered_set;(1)(C11 起)namespace pmr { templ…...
事件循环机制eventLoop?Js事件流?JavaScript如何实现异步编程?
单线程模式:由用户交互和修改dom的问题,只能决定js就是单线程任务异步模式诞生:同步模式遇到耗时操作页面便会阻塞,就像图片加载,接口获取,页面会一直等待;在执行主线程时,先执行同步…...
视频播放器倍速、清晰度切换、m3u8下载
视频上很容易就可以做到倍速播放,一般的视频格式都是每秒固定的帧数,按比例跳帧就可以了。音频上其实也可以用这种方式来直接删除一些周期,因为电脑里的音频也是数字化离散化地储存的。但是为了使声音不失真,应该都用了稍复杂一点…...
将Nginx 核心知识点扒了个底朝天(五)
什么叫 CDN 服务? CDN ,即内容分发网络。 其目的是,通过在现有的 Internet中 增加一层新的网络架构,将网站的内容发布到最接近用户的网络边缘,使用户可就近取得所需的内容,提高用户访问网站的速度。 一般…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...
如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...
