linux中的weblogic性能调优

合集下载

Linux操作系统内核性能测试与调优

Linux操作系统内核性能测试与调优

Linux操作系统内核性能测试与调优操作系统是计算机系统中最核心的软件之一,它负责协调和管理计算机硬件资源以及提供统一的用户界面。

Linux操作系统因其开放源代码、稳定性和安全性而备受欢迎。

然而,在大规模和高负载的环境中,Linux操作系统的性能可能会出现瓶颈。

因此,进行内核性能测试与调优是非常重要的。

一、性能测试的重要性在处理大量数据和并发用户请求时,操作系统的性能会成为瓶颈。

通过性能测试,我们可以了解操作系统在不同负载情况下的表现,进而定位和解决性能瓶颈。

性能测试有助于提高系统的响应时间、吞吐量和并发性能,从而确保系统的稳定运行。

二、性能测试的分类1. 压力测试:通过模拟实际用户行为或产生大量虚拟用户,并观察系统在负载增加的情况下的响应时间和吞吐量。

常用的压力测试工具包括Apache JMeter和Gatling等。

2. 负载测试:通过模拟实际业务场景,并且能够测试系统在高负载情况下的响应能力和稳定性。

这种测试方法可以帮助我们发现系统在繁忙时是否仍然能够正常工作,并识别可能存在的性能瓶颈。

3. 并发测试:通过模拟多个并发用户并行执行相同或不同的操作,以验证系统在并发访问下的性能表现。

这种测试方法可以评估系统的并发处理能力和资源利用率。

三、内核性能调优的重要性Linux操作系统的性能与其内核配置息息相关。

对内核的性能调优可以提高系统的响应速度、降低延迟和提高吞吐量。

通过调整内核参数和优化内核模块,可以使操作系统更好地适应特定的工作负载。

四、内核性能调优的方法1. 内核参数调整:根据系统的工作负载特点,适当调整内核参数。

例如,可以通过修改TCP/IP堆栈参数来提高网络性能,或者通过修改文件系统参数来提高磁盘I/O性能。

2. 内核模块优化:优化内核使用的模块,选择性加载和卸载不必要的模块,以减少内核的资源占用和启动时间。

3. 中断处理优化:通过合理分配和调整中断处理的优先级,减少中断处理的开销,提高系统的性能。

运维工程师笔试面试题及答案

运维工程师笔试面试题及答案

运维工程师笔试面试题及答案第一部分:Linux系统知识填空题:1.创建目录用mkdir命令,创建文件用touch命令。

2.移动文件用mv命令,复制文件用cp命令。

3.使用history命令查看用过的命令列表。

4.查看各类环境变量用env命令。

5.终止进程用kill命令。

6.编写的Shell程序运行前赋予该脚本文件读和执行权限。

7.链接分为:硬链接和软链接/符号链接。

8.在Linux系统中,以文件方式访问设备。

9.当前用户主目录用~/表示。

10.L inux下命令可使用的通配符有“?”和“*”。

选择题:1.某文件的组外成员的权限是只读、属主是全部权限、组内权限是可读可写、该文件权限为?(D)A.467B.674C.476D.7642.Linux配置文件一般放在什么目录?(A)A.etcB.binC.libD.dev3.什么命令常用于检测网络主机是否可达?(C)A.sshC.pingD.exit4.对所有用户的变量设置,应当放在哪个文件下?(B)A./etc/bashrcB./etc/profileC.~/.bash_profileD./etc/skel/.bashrc5.什么命令解压缩tar文件?(B)A.tar-czvf filename.tgzB.tar-xzvf filename.tgzC.tar-tzvf filename.tgzD.tar-dzvf filename.tgz第二部分:数据库填空题:1.数据库系统的核心是___数据库管理系统___。

2.事务四大特性分别是原子性、隔离性、一致性、持久性。

3.索引字段值不唯一,应该使用的索引类型为普通索引。

4.人员基本信息一般包括:身份证号,姓名,性别,年龄等。

其中可以作为主关键字的是身份证号。

5.SQL语言中,用于排序的是__Order by__子句,用于分组的是__group by__子句。

6.在数据库技术中,实体集之间的联系可以是一对一或一对多或多对多的,那么“学生”和“可选课程”的联系为多对多。

Linux高级存储性能调优使用SSD和NVMe

Linux高级存储性能调优使用SSD和NVMe

Linux高级存储性能调优使用SSD和NVMe 随着科技的不断进步,存储技术也在不断地发展和创新。

固态硬盘(Solid State Drive,简称SSD)和非易失性内存(Non-Volatile Memory Express,简称NVMe)作为高效的存储解决方案,已经逐渐被广泛应用于各种领域。

在Linux系统中,使用SSD和NVMe进行高级存储性能调优可以显著提升系统的响应速度和效率。

本文将介绍Linux下如何利用SSD和NVMe进行高级存储性能调优的方法和技巧。

一、使用I/O调度程序在Linux中,可以通过选择合适的I/O调度程序来优化存储性能。

传统的I/O调度程序如CFQ、Deadline和Noop已经无法适应SSD和NVMe的高性能需求。

为此,Linux内核引入了新的I/O调度程序BFQ (Budget Fair Queueing)和KYBER,这两者对于SSD和NVMe的性能优化效果更好。

BFQ是一种基于权重的I/O调度程序,它可以根据应用程序的优先级和权重来调度磁盘访问,以最大化整体系统性能。

KYBER则是一种基于队列的I/O调度程序,通过减小队列深度和引入最小延迟来减少I/O的等待时间。

二、启用TRIM和DiscardTRIM和Discard是SSD和NVMe存储中的常用技术,用于优化垃圾回收和擦除操作。

TRIM命令可以通知SSD和NVMe存储设备哪些数据已经被删除,从而加速垃圾回收和写入操作。

为了启用TRIM功能,我们需要在Linux系统中开启相关的支持。

首先,我们需要确认文件系统支持TRIM功能。

常见的文件系统如ext4、XFS和Btrfs都支持TRIM。

然后,使用以下命令查看SSD和NVMe设备是否支持TRIM:$ sudo hdparm -I /dev/sda如果输出中包含“TRIM supported”字样,则表示该设备支持TRIM 功能。

接下来,在/etc/fstab文件中添加以下行以启用TRIM:/dev/sda / ext4 discard,noatime 0 1最后,使用以下命令重新挂载文件系统:$ sudo mount -o remount /三、开启存储多队列和中断分配SSD和NVMe技术的出现,使得存储设备具备了更高的I/O处理能力。

linux性能调优学习笔记

linux性能调优学习笔记

Linux 性能调优1.Profiling几种工具profiling 包括几种:cpu profiling,即提到的性能分析。

memory profiling,即分析程序性能。

network profiling,即网络流量的分析。

另外,profiling又分两种:1, sampling。

即采样方式。

2, instruments,即插装代码技术。

(包含: 编译期间,链接期间,运行期间)。

oprofile ---- 属于sampling 方式,即不影响程序行为,也不需要重启程序,它是对cpu进行采样分析。

gprof ---- 属于插装技术,需在编译期间增加-pg 选项,属于GNU 部分,不需安装,随着gcc附带。

valgrind--- 属于插装技术,需要在运行期间增加valgrind选项。

(其中massif工具用于内存分析,callgrind用于性能分析)google-perftools ---- 属于插装技术,需要在链接期间增加-L/usr/lib -lprofiler 选项。

2.gprof 分析linux程序性能瓶颈gcc -pg -o test test.ctest运行的时候会把搜集的信息保存在gmoun.out中fedora 不能使用-lc_p选项的问题一般gprof只能查看用户函数信息。

如果想查看库函数的信息,需要在编译是再加入“-lc_p”编译参数代替“-lc”编译参数,这样程序会链接libc_p.a库,才可以产生库函数的profiling信息。

需要安装glibc-profile,下载地址http://ftp.riken.jp/Linux/fedora/core/updates/2/i386/glibc-profile-2.3.3-27.1.i386.rp。

gprof hello gmon.out -p 得到每个函数占用的执行时间gprof hello gmon.out -q 得到call graph,包含了每个函数的调用关系,调用次数,执行时间等信息。

linux系统内核参数优化-linux快速入门教程

linux系统内核参数优化-linux快速入门教程

linux系统内核参数优化-linux快速⼊门教程内核的 shmall 和 shmmax 参数SHMMAX= 配置了最⼤的内存segment的⼤⼩ ------>这个设置的⽐SGA_MAX_SIZE⼤⽐较好。

SHMMIN= 最⼩的内存segment的⼤⼩SHMMNI= 整个系统的内存segment的总个数SHMSEG= 每个进程可以使⽤的内存segment的最⼤个数配置信号灯( semphore )的参数:SEMMSL= 每个semphore set⾥⾯的semphore数量 -----> 这个设置⼤于你的process的个数吧,否则你不得不分多个semphore set,好像有process+n之说,我忘了n是⼏了。

SEMMNI= 整个系统的semphore set总数SEMMNS=整个系统的semphore总数shmall 是全部允许使⽤的共享内存⼤⼩,shmmax 是单个段允许使⽤的⼤⼩。

这两个可以设置为内存的 90%。

例如 16G 内存,16*1024*1024*1024*90% = 15461882265,shmall 的⼤⼩为 15461882265/4k(getconf PAGESIZE可得到) = 3774873。

修改 /etc/sysctl.confkernel.shmmax=15461882265kernel.shmall=3774873kernel.msgmax=65535kernel.msgmnb=65535执⾏ sudo sysctl -p可以使⽤ ipcs -l 看结果。

ipcs -u 可以看到实际使⽤的情况========================================================================linux 内存管理⼀、前⾔本⽂档针对OOP8⽣产环境,具体优化策略需要根据实际情况进⾏调整;本⽂档将在以下⼏个⽅⾯来阐述如何针对RedHat Enterprise Linux 进⾏性能优化。

linux服务weblogic启动和参数修改

linux服务weblogic启动和参数修改
<self-tuning-thread-pool-size-max>500</self-tuning-thread-pool-size-max>
<listen-port>7923</listen-port>
<listen-address></listen-address>
</server>
经过测试,以上两种方法适合weblogic9,10,11g
MEM_ARGS="-Xms1024m -Xmx1024m -XX:MaxPermSize=256m"
weblogic 9开始使用了线程自调优技术。通过以下方法设置,可以指定默认线程的最大最小值。
方法一:修改启动脚本参数
在启动脚本中,增加如下参数
%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS%
nohup ./startWebLogic.sh > nohup.log &
./stopWebLogic.sh
ps -ef |grep start 查询后台进程
ps -ef |grep java
kill -9 pid值
nohup ./startWebLogic.sh >nohup.out &
tail -f
weblogic9 搭建环境时:data sources下一定要把Targets下边的Servers给要修改如下(注意OP文件需要是weblogic的,开发一般给的是tomcat的)
CLASSPATH="${WL_HOME}/server/lib/xerces2.6.2.jar:${WEBLOGIC_CLASSPATH}:${POINTBASE_CLASSPATH}:${JAVA_HOME}/jre/lib/rt.jar:${WL_HOME}/server/lib/webservices.jar:${CLASSPATH}"

关于Weblogic应用集群服务启动慢的缺陷分析及处理办法 (1)

关于Weblogic应用集群服务启动慢的缺陷分析及处理办法 (1)

关于Weblogic应用集群服务启动慢的缺陷分析及处理办法一、缺陷现象江苏公司电网GIS部分服务部署在Linux Redhat5.5操作系统的服务器上,使用的中间件版本为Weblogic 9,在电网GIS运行过程中,如果遇到因为应用服务器原因或者检修计划安排,重启Weblogic程序,需要花费10分钟以上的等待时间。

在日常检修中,重启Weblogic程序集群服务的耗时都在30分钟左右,在7*24小时的在线运行系统,中断业务服务时间,严重影响系统的运行及检修工作。

国家电网公司核心系统的应用架构,均采用Weblogic集群服务,此缺陷为系统日常检修的通病,造成很多省公司检修系统停机时间过长,甚至不敢停机维护系统,属于中间件的重大缺陷问题,已经存在很久。

二、缺陷分析对于一个简单部署的Weblogic而言,一般情况下,启动Weblogic最长一般需要2~3分钟时间,同时在启动时,Weblogic的日志内容是滚动的,不会在日志的某个地方静止到5分钟以上,所以这是极不正常的现象。

Weblogic启动慢的原因,在Weblogic启动时,通过对线程堆的监控,线程挂在security相关的随机数生成上面。

这个由于JDK的配置(JDK从/dev/random读取‘randomness’经常耗费10分钟或者更长的时间)导致的。

三、缺陷处理针对该问题,有三种解决方案,分别如下:在Weblogic启动参数里添加“-Djava.security.egd=file:/dev/./urandom”(/dev/urandom 无法启动)执行命令mv /dev/random /dev/random.ORIG ; ln /dev/urandom /dev/random将/dev/random 指向/dev/urandom修改Linux上Weblogic使用的jdk $JAVA_HOME/jre/lib/security/java.security 文件将securerandom.source=file:/dev/urandom 修改为securerandom.source=file:/dev/./urandom这样可以解决任何一个域Weblogic启动慢的问题。

linux调优参数

linux调优参数

在Linux系统上,可以通过调整参数来优化系统的性能和功能。

以下是一些常见的Linux调优参数:内存管理:vm.swappiness:调整交换分区的使用频率,默认值为60,建议将其设置为10或更低的值,以减少交换分区的使用。

vm.min_free_kbytes:设置系统保留的空闲内存量,默认值为64,建议根据实际情况调整。

vm.max_map_count:设置进程可以拥有的最大内存映射数量,默认值为65536,如果需要运行大量进程或使用大量内存映射,可以适当增加该值。

网络性能:net.ipv4.tcp_tw_reuse:允许重用TIME_WAIT套接字,默认值为0,建议将其设置为1以减少TIME_WAIT套接字数量。

net.ipv4.tcp_fin_timeout:设置TIME_WAIT套接字的超时时间,默认值为60秒,可以适当增加该值以减少TIME_WAIT套接字数量。

net.ipv4.tcp_keepalive_time:设置TCP keepalive探测的间隔时间,默认值为75秒,可以适当增加该值以避免因长时间不活动而断开连接。

文件系统:fs.file-max:设置系统可以同时打开的最大文件数量,默认值为1024,可以根据实际情况调整。

fs.nr_open:设置系统进程可以同时打开的文件数量上限,默认值为8192,可以根据实际情况调整。

CPU 调度:kernel.sched_min_granularity_ns:设置最小调度时间粒度,默认值为1000000纳秒(1毫秒),可以根据实际情况调整。

kernel.sched_migration_cost_ns:设置CPU调度迁移的开销时间,默认值为500000纳秒(半毫秒),可以适当增加该值以提高系统在多核处理器上的性能。

系统进程:kernel.panic:设置系统崩溃时的重启次数,默认值为1,建议将其设置为0以避免系统无限重启。

fs.inotify.max_user_instances:设置系统可以监视的文件系统实例数量上限,默认值为8192,可以根据实际情况调整。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux中的Weblogic性能测试调整一.操作系统参数调整1.linux TCP连接数调整通过命令:ulimit –n 查看当前最大TCP连接数,这表示当前用户的每个进程最多允许同时打开多少个文件。

一般系统默认为1024,在并发量大的情况下肯定不够用。

修改此限制的最简单办法:ulimit –n <file_num> 设置单一进程允许打开的最大文件数。

如果系统回显类似于“Operation not permitted”之类的话,说明修改失败,需要修改系统对该用户打开文件数的软限制或硬限制。

修改软限制或硬限制:修改/etc/security/limits.conf文件,在文件中添加如下行:* soft nofile 10240* hard nofile 10240表示修改所有用户的限制,也可以用指定用户名替代。

修改/etc/pam.d/login文件,在文件中添加如下行:session required /lib/security/pam_limits.so查看Linux系统级的最大打开文件数限制:cat /proc/sys/fs/file-max2.修改网络内核对TCP连接的有关限制端口范围:修改/etc/sysctl.conf文件,在文件中添加如下行:net.ipv4.ip_local_port_range = 1024 65535另外,有时无法建立TCP连接的原因可能是因为Linux网络内核的IP_TABLE防火墙对最大跟踪的TCP连接数有限制修改/etc/sysctl.conf文件,在文件中添加如下行:net.ipv4.ip_conntrack_max = 10240这表明将系统对最大跟踪的TCP连接数限制设置为10240。

请注意,此限制值要尽量小,以节省对内核内存的占用。

3.其他参数调整在/etc/sysctl.conf文件中增加如下参数,进行系统参数调整net.core.rmem_default=128388607 默认的TCP数据接收缓冲net.core.wmem_default=128388607 默认的TCP数据发送缓冲net.core.rmem_max=128388607net.core.wmem_max=128388607net.ipv4.tcp_rmem=8196 128388607 128388607 最小默认最大net.ipv4.tcp_wmem=8196 128388607 128388607net.ipv4.tcp_keepalive_time=1800tcp_keepalive_time 值控制TCP/IP 尝试验证空闲连接是否完好的频率。

如果这段时间内没有活动,则会发送保持活动信号。

如果网络工作正常,而且接收方是活动的,它就会响应。

如果需要对丢失接收方敏感,换句话说,需要更快地发现丢失了接收方,请考虑减小这个值。

如果长期不活动的空闲连接出现次数较多,而丢失接收方的情况出现较少,您可能会要提高该值以减少开销。

缺省情况下,如果空闲连接7200 秒(2 小时)内没有活动,Linux 就发送保持活动的消息。

通常,1800 秒是首选值,从而一半的已关闭连接会在30 分钟内被检测到。

timeout_timewaittimeout_timewait 值确定了在 TCP/IP 可释放已关闭的连接并复用其资源之前,必须等待的时间。

关闭和释放之间的时间间隔称为TIME_WAIT 状态或最长分段生命周期的两倍(2MSL)状态。

在此期间,重新打开客户机和服务器之间的连接比新建一个连接的开销要小。

通过减小该项的值,TCP/IP 可更快地释放已关闭的连接,并可为新连接提供更多的资源。

如果由于多个连接处于 TIME_WAIT 状态导致吞吐量较低,从而正在运行的应用程序需要快速释放连接、创建新的连接或是进行调整,请调整这个参数。

缺省值是 240 秒(4 分钟)。

最小推荐值是 30 秒dev_max_backlog=8096connection backlog可能需要提高连接储备值,以应对大量突发入局连接请求的情况。

如果同时接收到大量连接请求,使用较大的值会提高受支持的暂挂连接的数量,从而可减少连接失败的数量。

请使用以下过程来查看或定制您的值。

echo X > /proc/sys/net/core/netdev_max_backlogecho X > /proc/sys/net/core/somaxconntcp_keepalive_intvltcp_keepalive_intvl 值定义了如果未从接收方收到保持活动消息的响应,TCP/IP 重复发送保持活动信号的频率。

当连续发送保持活动信号、但未收到响应的次数超出 tcp_keepalive_probes 的值时,会放弃该连接。

如果期望较长的响应时间,您可能需要提高该值以减少开销。

如果需要减少花在验证接收方是否已丢失上的时间,请考虑减小该值或 tcp_keepalive_probes 值。

缺省情况下,在未收到响应而重新发送保持活动的消息之前,Linux 会等待 75 秒。

通常,15 秒是首选值,以便能够较快地检测到丢失了接收方。

请使用以下过程来查看或定制您的值。

echo X > /proc/sys/net/ipv4/tcp_keepalive_intvltcp_keepalive_probestcp_keepalive_probes 值定义了 TCP/IP 通过现有连接重新发送未返回应答的保持活动的消息次数。

如果您的网络性能很差,可能需要提高该值以保持有效的通信。

如果您的网络性能很好,可以减小该值以减少验证接收方是否丢失所花费的时间。

缺省情况下,在决定放弃该连接之前,Linux 会发送 9 次未返回应答的保持活动的消息。

通常,5 次是首选值,以便能够较快地检测到丢失了接收方。

请使用以下过程来查看或定制您的值。

echo X > /proc/sys/net/ipv4/tcp_keepalive_probes其中 X 由在未返回应答的情况下,期望的用于保持活动的重新传输的次数替换。

net.ipv4.tcp_window_scaling=0BOOLEAN缺省值为1该文件表示设置tcp/ip会话的滑动窗口大小是否可变。

参数值为布尔值,为1时表示可变,为0时表示不可变。

tcp/ip通常使用的窗口最大可达到65535 字节,对于高速网络,该值可能太小,这时候如果启用了该功能,可以使tcp/ip滑动窗口大小增大数个数量级,从而提高数据传输的能力(RFC 1323)。

(对普通地百M网络而言,关闭会降低开销,所以如果不是高速网络,可以考虑设置为0)net.ipv4.tcp_sack=0BOOLEAN缺省值为1使用Selective ACK﹐它可以用来查找特定的遗失的数据报--- 因此有助于快速恢复状态。

该文件表示是否启用有选择的应答(Selective Acknowledgment),这可以通过有选择地应答乱序接收到的报文来提高性能(这样可以让发送者只发送丢失的报文段)。

(对于广域网通信来说这个选项应该启用,但是这会增加对CPU 的占用。

)net.ipv4.tcp_timestamps=0BOOLEAN缺省值为1Timestamps 用在其它一些东西中﹐可以防范那些伪造的sequence 号码。

一条1G的宽带线路或许会重遇到带out-of-line数值的旧sequence 号码(假如它是由于上次产生的)。

Timestamp 会让它知道这是个'旧封包'。

(该文件表示是否启用以一种比超时重发更精确的方法(RFC 1323)来启用对RTT 的计算;为了实现更好的性能应该启用这个选项。

)net.ipv4.tcp_tw_reuse=1BOOLEAN默认值是0该文件表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接(这个对快速重启动某些服务,而启动后提示端口已经被使用的情形非常有帮助)net.ipv4.tcp_tw_recycle=1BOOLEAN默认值是0打开快速TIME-WAIT sockets 回收。

除非得到技术专家的建议或要求﹐请不要随意修改这个值。

(做NAT的时候,建议打开它)net.ipv4.tcp_fin_timeout=30INTEGER默认值是60对于本端断开的socket连接,TCP保持在FIN-WAIT-2状态的时间。

对方可能会断开连接或一直不结束连接或不可预料的进程死亡。

默认值为60 秒。

过去在2.2版本的内核中是180 秒。

您可以设置该值﹐但需要注意﹐如果您的机器为负载很重的web服务器﹐您可能要冒内存被大量无效数据报填满的风险﹐FIN-WAIT-2 sockets 的危险性低于FIN-WAIT-1 ﹐因为它们最多只吃1.5K 的内存﹐但是它们存在时间更长。

另外参考tcp_max_orphans。

(事实上做NA T的时候,降低该值也是好处显著的,我本人的网络环境中降低该值为30)其他参数请参考附录二.Weblogic调整主要从以下几个方面调整:模式:选择产品模式,同时选择JRocket内存参数:设置Weblogic内存大小:set MEM_ARGS=-Xms1024m -Xmx1024m 最大和最小设置一致日志等级:WarningHTTP访问日志:关JDBC POOL:Row Prefetch EnabledInitial CapacityMaximum Capacity (与Initial Capacity设置一致)Statement Cache SizeTest FrequencyTurning:Enable Native IO对需要长时处理的业务,如果出stuck thread警告,需要调整stuck-second 参数,适当加长。

如果出现拒绝连接的错误,适当增加accept-backlog时间,增加接受缓存队列的长度三.附录1.linux内核TCP相关参数解释tcp_syn_retries:INTEGER默认值是5对于一个新建连接,内核要发送多少个SYN 连接请求才决定放弃。

不应该大于255,默认值是5,对应于180秒左右时间。

(对于大负载而物理通信良好的网络而言,这个值偏高,可修改为 2.这个值仅仅是针对对外的连接,对进来的连接,是由tcp_retries1决定的)tcp_synack_retries:INTEGER默认值是5对于远端的连接请求SYN,内核会发送SYN +ACK数据报,以确认收到上一个SYN连接请求包。

这是所谓的三次握手( threeway handshake)机制的第二个步骤。

这里决定内核在放弃连接之前所送出的SYN+ACK 数目。

相关文档
最新文档