`
zhengdl126
  • 浏览: 2558346 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

【汇总压力测试】linux+nginx+php-fpm+mysql优化

阅读更多


====================== 压测前:

netstat -ntlp
ulimit -SHn 65535  (加入开机启动,nginx启动前)

检查优化:
nginx.conf
php-fpm.conf
my.cnf

 


优化/etc/sysctl.conf

增加:
 kernel.shmmax = 68719476736
 # Controls the maximum number of shared memory segments, in pages
 kernel.shmall = 4294967296
   
        #syncookie
        net.ipv4.tcp_max_syn_backlog = 65536
        net.core.netdev_max_backlog =  32768
        net.core.somaxconn = 32768

        net.core.wmem_default = 8388608
        net.core.rmem_default = 8388608
        net.core.rmem_max = 16777216
        net.core.wmem_max = 16777216

        net.ipv4.tcp_timestamps = 0
        net.ipv4.tcp_synack_retries = 2
        net.ipv4.tcp_syn_retries = 2
        #time_wait
        net.ipv4.tcp_syncookies = 1
        net.ipv4.tcp_tw_recycle = 1
        net.ipv4.tcp_fin_timeout = 5
        net.ipv4.tcp_tw_reuse = 1

        net.ipv4.tcp_mem = 94500000 915000000 927000000
        net.ipv4.tcp_max_orphans = 3276800
        net.ipv4.ip_local_port_range = 1024  65535

 

 

 

 

 

查看mysql连接

#netstat -anp | grep mysql | wc -l

netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'

查看TIME_WAIT连接数
netstat -ae|grep "TIME_WAIT" |wc -l

netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'

查找较多time_wait连接
netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20

 

 

 

 

 

===================================实例测试

1 系统说明

服务器说明:

两台 CentOS release 5.4 (Final) 32 位, 1 CPU 8

 

a.       服务器 1

服务: Nginx + php (fpm)

nginx 开启的进程数 8

FastCGI 进程数 128

 

b.       服务器 2

服务 :Memcache+mysql

memcache 替代 session ,开启两个端口,分别分配 1024M;

 

 

2) 模拟场景 : 首页,登录,退出

并发量: 900

 

 

 

=============== 系统说明

 

#cat /etc/issue

CentOS release 5.4 (Final)

Kernel \r on an \m

 

 

# cat /proc/cpuinfo | grep physical | uniq -c

      8 physical id     : 1

 

# ulimit -a

core file size          (blocks, -c) 0  需要修改

data seg size            (kbytes, -d) unlimited

scheduling priority             (-e) 0

file size               (blocks, -f) unlimited

pending signals                 (-i) 143360

max locked memory       (kbytes, -l) 32

max memory size         (kbytes, -m) unlimited

open files                       (-n) 1024   需要修改 (因为是tcp协议  要打开套接字,要打开文件句柄,而单进程的最大打开文件句柄操作系统是有限制的,默认是1024)

pipe size            (512 bytes, -p) 8

POSIX message queues     (bytes, -q) 819200

real-time priority              (-r) 0

stack size              (kbytes, -s) 10240

cpu time               (seconds, -t) unlimited

max user processes              (-u) 143360

virtual memory          (kbytes, -v) unlimited

file locks                      (-x) unlimited

 

 

 

#getconf LONG_BIT

32

 

 

两台服务器:

Nginx + php (fpm)   113.106.90.80

Memcache+mysql   113.106.90.78

 

 

 

 

nginx 开启的进程数 8

FastCGI 进程数 128

worker_connections 65535;
每个工作进程允许最大的同时连接数   Maxclient = work_processes *   worker_connections

 

 

――― memcache 替代 session

Mysql 服务器:

/usr/local/bin/memcached -d -m 10 -u root -l 192.168.12.203 -p 13001 -c 1024 -P /tmp/memcached.pid

/usr/local/bin/memcached -d -m 10 -u root -l 192.168.12.203 -p 13002 -c 1024 -P /tmp/memcached2.pid

 

 

session.save_handler = memcache
session.save_path = "tcp://192.168.12.203:13001,tcp://192.168.12.203:13002"

 

 

 

===========优化处

 

―――――― 1 linux 默认 core file size 0

何谓 core 文件,当一个程序崩溃时,在进程当前工作目录的 core 文件中复制了该进程的存储图像。 core 文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。 core 文件是个二进制文件,需要用相应的工具来分析程序崩溃时的内存映像。

系统默认 core 文件的大小为 0 ,所以没有创建。可以用 ulimit 命令查看和修改 core 文件的大小。

 

$ulimit -c

0

$ ulimit -c 1000

$ ulimit -c

1000

-c 指定修改 core 文件的大小, 1000 指定了 core 文件大小。也可以对 core 文件的大小不做限制,如:

# ulimit -c unlimited

#ulimit -c

Unlimited

 

如果想让修改永久生效,则需要修改配置文件

 

Vim /etc/profile 中的:

ulimit -S -c 0 > /dev/null 2>&1

修改为

ulimit -S -c 1000 > /dev/null 2>&1

 

#source /etc/profile  重启生效

 

 

参考资料: http://hi.baidu.com/jrckkyy/blog/item/2562320a5bdbc534b1351d95.html

 

 

―――――― 2 linux 默认值 open files max user processes 1024

#ulimit -n

1024

#ulimit –u

1024

问题描述: 说明 server 只允许同时打开 1024 个文件,处理 1024 个用户进程

使用ulimit -a 可以查看当前系统的所有限制值,使用ulimit -n 可以查看当前的最大打开文件数。

新装的linux 默认只有1024 ,当作负载较大的服务器时,很容易遇到error: too many open files 。因此,需要将其改大。

 

解决方法:

使用 ulimit –n 65535 可即时修改,但重启后就无效了。(注ulimit -SHn 65535 等效 ulimit -n 65535-Ssoft-Hhard)

有如下三种修改方式:

/etc/rc.local 中增加一行 ulimit -SHn 65535
2.
/etc/profile 中增加一行 ulimit -SHn 65535
3.
/etc/security/limits.conf 最后增加:

* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535

具体使用哪种,在 CentOS 中使用第1 种方式无效果,使用第3 种方式有效果,而在Debian 中使用第2 种有效果

 

# ulimit -n

65535

# ulimit -u

65535

 

备注:ulimit 命令本身就有分软硬设置,加-H 就是硬,加-S 就是软默认显示的是软限制

soft 限制指的是当前系统生效的设置值。 hard 限制值可以被普通用户降低。但是不能增加。 soft 限制不能设置的比 hard 限制更高。 只有 root 用户才能够增加 hard 限制值。

 

 

―――――― 3 发现存在大量 TIME_WAIT 状态的连接

 

问题描述: 发现大量 time_wait 状态的连接 , 有时甚至达到 7000 以上

netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'


 

查找较多 time_wait 连接

netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20

发现是 DB 服务器的 mysql memcache 的未释放导致。

 

建议:在 PHP 程序开发时,建议大家尽量 mysql_close ,减少 msyql 消耗。

 

 

解决方法: 对于大量使用 tcp 连接的应用来说,也需要对 /etc/sysctl.conf 中的参数进行相应优化 :

vim /etc/sysctl.conf

编辑文件,加入以下内容:

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_fin_timeout = 30

 

然后执行 /sbin/sysctl -p 让参数生效。

 

优化后:

发现大量的 TIME_WAIT 已不存在, mysql 进程的占用率很快就降下来的。

 

参考资料: http://space.itpub.net/9653957/viewspace-626059

 

―――――― 4 nginx.conf 优化

 

 

 

-------5 php优化

 

open_basedir = /data/www/  #将用户可操作的文件限制在某目录
safe_mode = on #打开php的安全模式,开启重要文件的权限控制
safe_mode_exec_dir = /data/www/ #执行某些程序目录设置。不要执行任何程序,那么就可以指向我们网页目录
disable_functions = chdir,getcwd,scandir,chgrp,chmod,chown #禁用函数
expose_php = Off #关闭PHP版本信息在http头中的泄漏
display_errors = Off #禁止错误
关闭error_reporting
log_errors = On
post_max_size = 8M
upload_max_filesize = 10M

apc.enabled = 1
apc.cache_by_default = on
apc.shm_segments = 1
apc.shm_size = 32
apc.ttl = 600
apc.user_ttl = 600
apc.num_files_hint = 0
apc.write_lock = On

 

 

 

――――――php-fpm.conf


<?xml version="1.0" ?>
<configuration>

All relative paths in this config are relative to php's install prefix

<section name="global_options">

Pid file
<value name="pid_file">/usr/local/services/php/logs/php-fpm.pid</value>

Error log file
<value name="error_log">/data/logs/php/php-fpm.log</value>

Log level
<value name="log_level">notice</value>

When this amount of php processes exited with SIGSEGV or SIGBUS ...
<value name="emergency_restart_threshold">10</value>

... in a less than this interval of time, a graceful restart will be initiated.
Useful to work around accidental curruptions in accelerator's shared memory.
<value name="emergency_restart_interval">1m</value>

Time limit on waiting child's reaction on signals from master
<value name="process_control_timeout">5s</value>

Set to 'no' to debug fpm
<value name="daemonize">yes</value>

</section>

<workers>

<section name="pool">

Name of pool. Used in logs and stats.
<value name="name">default</value>

Address to accept fastcgi requests on.
Valid syntax is 'ip.ad.re.ss:port' or just 'port' or '/path/to/unix/socket'
<value name="listen_address">127.0.0.1:9000</value>

<value name="listen_options">

Set listen(2) backlog
<value name="backlog">-1</value>

Set permissions for unix socket, if one used.
In Linux read/write permissions must be set in order to allow connections from web server.
Many BSD-derrived systems allow connections regardless of permissions.
<value name="owner"></value>
<value name="group"></value>
<value name="mode">0666</value>
</value>

Additional php.ini defines, specific to this pool of workers.
<value name="php_defines">
<value name="sendmail_path">/usr/sbin/sendmail -t -i</value>
<value name="display_errors">1</value>
</value>

Unix user of processes
<value name="user">www</value>

Unix group of processes
<value name="group">www</value>

Process manager settings
<value name="pm">

Sets style of controling worker process count.
Valid values are 'static' and 'apache-like'
<value name="style">static</value>

Sets the limit on the number of simultaneous requests that will be served.
Equivalent to Apache MaxClients directive.
Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi
Used with any pm_style.
<value name="max_children">128</value>

Settings group for 'apache-like' pm style
<value name="apache_like">

Sets the number of server processes created on startup.
Used only when 'apache-like' pm_style is selected
<value name="StartServers">20</value>

Sets the desired minimum number of idle server processes.
Used only when 'apache-like' pm_style is selected
<value name="MinSpareServers">5</value>

Sets the desired maximum number of idle server processes.
Used only when 'apache-like' pm_style is selected
<value name="MaxSpareServers">35</value>

</value>

</value>

The timeout (in seconds) for serving a single request after which the worker process will be terminated
Should be used when 'max_execution_time' ini option does not stop script execution for some reason
'0s' means 'off'
<value name="request_terminate_timeout">0s</value>

The timeout (in seconds) for serving of single request after which a php backtrace will be dumped to slow.log file
'0s' means 'off'
<value name="request_slowlog_timeout">0s</value>

The log file for slow requests
<value name="slowlog">/data/logs/php/php-fpm-slow.log</value>

Set open file desc rlimit
<value name="rlimit_files">65535</value>

Set max core size rlimit
<value name="rlimit_core">0</value>

Chroot to this directory at the start, absolute path
<value name="chroot"></value>

Chdir to this directory at the start, absolute path
<value name="chdir"></value>

Redirect workers' stdout and stderr into main error log.
If not set, they will be redirected to /dev/null, according to FastCGI specs
<value name="catch_workers_output">yes</value>

How much requests each process should execute before respawn.
Useful to work around memory leaks in 3rd party libraries.
For endless request processing please specify 0
Equivalent to PHP_FCGI_MAX_REQUESTS
<value name="max_requests">102400</value>

Comma separated list of ipv4 addresses of FastCGI clients that allowed to connect.
Equivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi (5.2.2+)
Makes sense only with AF_INET listening socket.
<value name="allowed_clients">127.0.0.1</value>

Pass environment variables like LD_LIBRARY_PATH
All $VARIABLEs are taken from current environment
<value name="environment">
<value name="HOSTNAME">$HOSTNAME</value>
<value name="PATH">/usr/local/bin:/usr/bin:/bin</value>
<value name="TMP">/tmp</value>
<value name="TMPDIR">/tmp</value>
<value name="TEMP">/tmp</value>
<value name="OSTYPE">$OSTYPE</value>
<value name="MACHTYPE">$MACHTYPE</value>
<value name="MALLOC_CHECK_">2</value>
</value>

</section>

</workers>

</configuration>

----------------6 mysql优化

 

 

[client]
#password       = your_password
default-character-set = utf8
port            = 33306
socket          = /data/mysql/mysql.sock

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port            = 33306
socket          = /data/mysql/mysql.sock
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 32M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M

open_files_limit    = 10240
max_connections = 3000
max_connect_errors = 6000
table_cache = 1024
back_log = 600
max_allowed_packet = 32M
sort_buffer_size = 2M
join_buffer_size = 2M
thread_cache_size = 64
thread_concurrency = 16
query_cache_size = 32M
query_cache_limit = 2M
query_cache_min_res_unit = 2k
#default-storage-engine = MyISAM
#default_table_type = MyISAM
thread_stack = 192K
transaction_isolation = READ-COMMITTED
tmp_table_size = 256M
max_heap_table_size = 256M
binlog_cache_size = 8M
max_binlog_cache_size = 8M
max_binlog_size = 512M
expire_logs_days = 7
key_buffer_size = 256M
read_buffer_size = 1M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M

myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover
skip-name-resolve
#master-connect-retry = 10
#slave-skip-errors = 1032,1062,126,1114,1146,1048,1396
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 1024M
innodb_file_io_threads = 4
innodb_thread_concurrency = 16
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 16M
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table = 0




[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

分享到:
评论

相关推荐

    小马学习linux

    - **PHP-FPM监控**:可以借鉴现有的PHP-FPM监控模板和脚本案例,对其进行适当的调整以适应自身业务的具体需求。 - **MySQL监控**:为了监控MySQL服务器的状态,可以考虑建立一个临时数据库来存储各种监控指标,然后...

    PHP5.5安装PHPRedis扩展及连接测试方法

    这些专题包括但不限于《PHP+Redis数据库程序设计技巧总结》、《PHP扩展开发教程》、《PHP+MySQL数据库操作入门教程》、《PHP+mysqli数据库程序设计技巧总结》、《PHP面向对象程序设计入门教程》、《PHP网络编程技巧...

    电脑资源小手册

    这份文档可能会讲解如何安装Apache或Nginx服务器,配置PHP解析器(如PHP-FPM),以及设置MySQL数据库,形成LAMP或LNMP环境。此外,它还可能涵盖如何调试PHP代码和优化服务器性能。 "常用类及函数.html"和"常用函数...

    infor:数字化转型助力制造企业蜕变.pdf

    infor:数字化转型助力制造企业蜕变.pdf

    毕业论文-电视TV_新增蓝光-整站商业源码.zip

    毕业论文-电视TV_新增蓝光-整站商业源码.zip

    InTouch触摸式考勤终端介绍.PDF

    InTouch触摸式考勤终端介绍.PDF

    毕业论文-日主题子主题-整站商业源码.zip

    毕业论文-日主题子主题-整站商业源码.zip

    毕业论文-彩虹目录列表程序v1.3源码-整站商业源码.zip

    毕业论文-彩虹目录列表程序v1.3源码-整站商业源码.zip

    灭火器识别数据集,识别率99.5%,分别率640x640,127张训练图,支持pasical voc xml格式的标注框

    灭火器识别数据集,识别率99.5%,分别率640x640,127张训练图,支持pasical voc xml格式的标注框

    【Java毕业设计】勤无忧考勤工具 - 论文、源码、PPT,打造毕业作品.zip

    此压缩包包含了本毕业设计项目的完整内容,具体包括源代码、毕业论文以及演示PPT模板。 开发语言:Java 框架:SSM(Spring、Spring MVC、MyBatis) JDK版本:JDK 1.8 或以上 开发工具:Eclipse 或 IntelliJ IDEA Maven版本:Maven 3.3 或以上 数据库:MySQL 5.7 或以上 项目配置完成后即可运行,若需添加额外功能,可根据需求自行扩展。 运行条件 确保已安装 JDK 1.8 或更高版本,并正确配置 Java 环境变量。 使用 Eclipse 或 IntelliJ IDEA 打开项目,导入 Maven 依赖,确保依赖包下载完成。 配置数据库环境,确保 MySQL 服务正常运行,并导入项目中提供的数据库脚本。 在 IDE 中启动项目,确认所有服务正常运行。 主要功能简述: 请假审批流程:系统支持请假申请的逐级审批,包括班主任审批和院系领导审批(针对超过三天的请假)。学生可以随时查看请假申请的审批进展情况。 请假记录管理:系统记录学生的所有请假记录,包括请假时间、原因、审批状态及审批意见等,供学生和审批人员查询。 学生在线请假:学生可以通过系统在线填写请假申请,包括请假的起止日期和请假原因,并提交给班主任审批。超过三天的请假需经班主任审批后,再由院系领导审批。 出勤信息记录:任课老师可以在线记录学生的上课出勤情况,包括迟到、早退、旷课和请假等状态。 出勤信息查询:学生、任课老师、班主任、院系领导和学校领导均可根据权限查看不同范围的学生上课出勤信息。学生可以查看自己所有学年的出勤信息,任课老师可以查看所教班级的出勤信息,班主任和院系领导可以查看本班或本院系的出勤信息,学校领导可以查看全校的出勤信息。 出勤统计与分析:系统提供出勤统计功能,可以按班级、学期等条件统计学生的出勤情况,帮助管理人员了解学生的出勤状况。 用户管理:系统管理员负责管理所有用户信息,包括学生、任课老师、班主任、院系领导和学校领导的账号创建、权限分配等。 数据维护:管理员可以动态更新和维护系统所需的数据,如学生信息、课程安排、学年安排等,确保系统的正常运行。 系统配置:管理员可以对系统进行配置,如设置数据库连接参数、调整系统参数等,以满足不同的使用需求。 身份验证:系统采用用户名和密码进行身份验证,确保只有授权用户才能访问系统。不同用户类型(学生、任课老师、班主任、院系领导、学校领导、系统管理员)具有不同的操作权限。 权限控制:系统根据用户类型分配不同的操作权限,确保用户只能访问和操作其权限范围内的功能和数据。 数据安全:系统采取多种措施保障数据安全,如数据库加密、访问控制等,防止数据泄露和非法访问。

    【电子设计竞赛】具有发电功能的储能小车设计与制作:高职高专组比赛任务及要求详解

    内容概要:本文档为2021年全国大学生电子设计竞赛的试题,针对“具有发电功能的储能小车”这一主题进行了详细的任务描述、要求说明及评分标准设定。任务要求设计并制作一款以超级电容为储能元件的手动发电智能小车,通过在特定区域内往复运动完成充电,之后按照规定执行直线行驶或沿圆形轨迹行驶的动作,并具备LED指示、液晶显示行驶距离等功能。基本要求涵盖小车的充电、启动控制、行驶距离等;发挥部分则增加了循迹行驶、硬币探测等挑战性任务。文档还对竞赛规则、测试条件等做了明确说明; 适合人群:参加全国大学生电子设计竞赛的高职高专组学生; 使用场景及目标:①为参赛队伍提供具体的设计与制作指导;②确保各参赛队伍理解竞赛规则、评分标准,以便准备比赛; 阅读建议:仔细研读任务要求和评分细则,确保设计方案符合所有规定,同时关注发挥部分以争取更高分数。

    汽车BCM程序源代码解析:灯光控制、雨刮洗涤、遥控及通讯功能的实现

    内容概要:本文详细介绍了汽车BCM(车身控制模块)程序源代码的关键功能和技术细节。首先探讨了BCM对外部灯光(如前照灯、转向灯、雾灯等)和内部灯光(如顶灯、门灯等)的精确控制机制,确保驾驶员和乘客的安全与舒适。其次,阐述了BCM对前后雨刮和洗涤系统的智能控制,提升车辆在恶劣天气条件下的能见度。接着,讲解了遥控钥匙(RKE)和门锁系统的运作方式,使车主能够远程操控车辆。最后,深入分析了CAN/LIN通讯和ISO15765诊断协议的应用,确保车辆各模块之间的高效协同和故障诊断。文中还展示了部分伪代码示例,帮助读者更好地理解BCM的具体实现。 适用人群:汽车电子工程师、嵌入式软件开发者、汽车爱好者。 使用场景及目标:适用于希望深入了解汽车BCM工作原理的技术人员,旨在掌握BCM在灯光控制、雨刮洗涤、遥控及通讯等方面的具体实现方法,从而应用于实际项目开发或故障排查。 其他说明:本文不仅提供了理论知识,还附有简单代码示例,便于读者理解和实践。

    毕业论文-深蓝AI智能名片小程序1.7.1-整站商业源码.zip

    毕业论文-深蓝AI智能名片小程序1.7.1-整站商业源码.zip

    基于springboot的“考研资讯平台”的设计与实现(源码+数据库+文档+PPT).zip

    # 基于springboot的“考研资讯平台”的设计与实现(源码+数据库+文档+PPT) - 开发语言:Java - 数据库:MySQL - 技术:springboot - 工具:IDEA/Ecilpse、Navicat、Maven

    VMware 17最新安装包

    VMware 17最新安装包

    电动汽车电机控制器:基于英飞凌TC27xC平台的详细设计方案及其实现

    内容概要:本文详细介绍了一种基于英飞凌TC27xC平台的电动汽车电机控制器设计方案。该方案涵盖了原理图、Bom清单、代码及其分析。文中首先概述了方案的整体架构,接着深入解析了原理图中的关键组件,如PWM信号用于控制电机速度和方向,以及ADC用于实时监控电流和电压。随后,提供了详细的Bom清单,列出了所有必要的电子元件。代码部分则分为初始化代码、电机控制代码和代码分析,展示了模块化的编程思路,确保系统的稳定性和易维护性。最后,介绍了该方案在实际电动汽车中的成功应用,强调了其对提升驾驶体验和安全性的贡献。 适合人群:从事电动汽车研发的技术人员、硬件工程师、嵌入式软件开发人员。 使用场景及目标:适用于正在研究或开发电动汽车电机控制系统的人群,旨在帮助他们理解和实现高效的电机控制解决方案。 其他说明:本文不仅提供了理论和技术细节,还分享了实践经验,有助于读者更好地掌握相关技术和应用场景。

    java必读之代码大全笔记

    java必读之代码大全笔记

    20张人脸面部不同区域分割、有标签

    20张人脸面部不同区域分割、有标签

    Java设计成品】学生考勤监控 - 论文、源码、PPT打包.zip

    此压缩包包含了本毕业设计项目的完整内容,具体包括源代码、毕业论文以及演示PPT模板。 开发语言:Java 框架:SSM(Spring、Spring MVC、MyBatis) JDK版本:JDK 1.8 或以上 开发工具:Eclipse 或 IntelliJ IDEA Maven版本:Maven 3.3 或以上 数据库:MySQL 5.7 或以上 项目配置完成后即可运行,若需添加额外功能,可根据需求自行扩展。 运行条件 确保已安装 JDK 1.8 或更高版本,并正确配置 Java 环境变量。 使用 Eclipse 或 IntelliJ IDEA 打开项目,导入 Maven 依赖,确保依赖包下载完成。 配置数据库环境,确保 MySQL 服务正常运行,并导入项目中提供的数据库脚本。 在 IDE 中启动项目,确认所有服务正常运行。 主要功能简述: 请假审批流程:系统支持请假申请的逐级审批,包括班主任审批和院系领导审批(针对超过三天的请假)。学生可以随时查看请假申请的审批进展情况。 请假记录管理:系统记录学生的所有请假记录,包括请假时间、原因、审批状态及审批意见等,供学生和审批人员查询。 学生在线请假:学生可以通过系统在线填写请假申请,包括请假的起止日期和请假原因,并提交给班主任审批。超过三天的请假需经班主任审批后,再由院系领导审批。 出勤信息记录:任课老师可以在线记录学生的上课出勤情况,包括迟到、早退、旷课和请假等状态。 出勤信息查询:学生、任课老师、班主任、院系领导和学校领导均可根据权限查看不同范围的学生上课出勤信息。学生可以查看自己所有学年的出勤信息,任课老师可以查看所教班级的出勤信息,班主任和院系领导可以查看本班或本院系的出勤信息,学校领导可以查看全校的出勤信息。 出勤统计与分析:系统提供出勤统计功能,可以按班级、学期等条件统计学生的出勤情况,帮助管理人员了解学生的出勤状况。 用户管理:系统管理员负责管理所有用户信息,包括学生、任课老师、班主任、院系领导和学校领导的账号创建、权限分配等。 数据维护:管理员可以动态更新和维护系统所需的数据,如学生信息、课程安排、学年安排等,确保系统的正常运行。 系统配置:管理员可以对系统进行配置,如设置数据库连接参数、调整系统参数等,以满足不同的使用需求。 身份验证:系统采用用户名和密码进行身份验证,确保只有授权用户才能访问系统。不同用户类型(学生、任课老师、班主任、院系领导、学校领导、系统管理员)具有不同的操作权限。 权限控制:系统根据用户类型分配不同的操作权限,确保用户只能访问和操作其权限范围内的功能和数据。 数据安全:系统采取多种措施保障数据安全,如数据库加密、访问控制等,防止数据泄露和非法访问。

    commons-csv-1.8.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

Global site tag (gtag.js) - Google Analytics