Rumah pangkalan data tutorial mysql Mysql Tomcat C3p0系统性能调优个人总结_MySQL

Mysql Tomcat C3p0系统性能调优个人总结_MySQL

Jun 01, 2016 pm 01:01 PM
peribadi prestasi sistem

系统信息

应用逻辑 就是用c3p0 到数据库查询数据并http返回Json数据

 

1 调优前的最初的测试结果 JMeter test result

No.

Type

Original

1000 data bigger

1

500Connection

250 query/S

63q/S
70q/S

2

1000 connections

255q/S

57q/S

65 q/S

这个数据是从程序的log 中打印出的 数据库select语句 中得出的结果(正确与否后面会有讨论)。

2 经过IOD系统打印 SQL query 的执行时间 和 tomcat 每个request 的 响应时间,找出 系统瓶颈 是因为一个 select语句 使用了 in:

SELECT* FROM infoobject_table where category = 'advertisement' and deleteflag=falseand (id in (select info_object_fk from timespan_table where vod_id = ? and deleteflag=false))Order By Rand() Limit

在 原来的小数据库中 数据较少 查询 时间 100ms 左右

在 1000个 video 的数据库中 查询的时间 达到 超过 1S

先注释掉 这个语句 ,想办法用优化的办法实现这个功能。

 

注释掉 这个 select 语句后得到的测试数据(还是计算从程序的log中打印出的 数据库select语句)Jmeter testresult

No.

Type

Original

1000 bigger

1

500Connection

250 query/S

CPU 100%
150q/S

2

1000 connections

255q/S

160q/S

160q/S

现在 的问题 是碰到 tomcat request 160q/S 再怎么调优 增加不了了,tomcat的内存 配置了4G 实际使用了不到 1个G ,CPU 8核心 利用率 只有10%。

 

3 发现前面的统计系统响应 性能有问题,很多时候sql 语句打印出来了,但是并没有执行完成, 因为c3p0 连接数只有15个,都在等待数据库连接,后来改变统计方式。

还有就是打印出 c3p0 的连接池的工作状态

 

private void printDataConnections() {
        ComboPooledDataSource ds = (ComboPooledDataSource) DBConn.getDataSource();
        StringBuffer connectionBuffer = new StringBuffer();
        try {
            connectionBuffer.append("getMaxPoolSize=" + ds.getMaxPoolSize());// 最大连接数
            connectionBuffer.append("getMinPoolSize=" + ds.getMinPoolSize());// 最小连接数
            connectionBuffer.append("getNumBusyConnections=" + ds.getNumBusyConnections());// // 正在使用连接数
            connectionBuffer.append("getNumIdleConnections=" + ds.getNumIdleConnections());// 空闲连接数
            connectionBuffer.append("getNumConnections=" + ds.getNumConnections());//总连接数
            logger.info("  connectionBuffer=" + connectionBuffer.toString()); 
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


    }
Salin selepas log masuk


后来进行mysql(默认100最大链接), tomcat(连接数default)tomcat 内存配置, c3p0(最大15个链接) 链接池优化。

Mysql: 在system/programdata/mysql/my.ini中配置

max_connections=1000

Tomcat: 配置连接数

<Connector port="8080"protocol="HTTP/1.1"       
                                  minSpareThreads="25"
                                  maxSpareThreads="75"
         enableLookups="false"
                                  disableUploadTimeout="true"
                                  connectionTimeout="20000"
         acceptCount="200" 
                                  maxThreads="800"
                                  minThreads="600"
                                  maxProcessors="1000"
                                  minProcessors="1000"
         useURIValidationHack="false"
    
              redirectPort="8443"
/>
Salin selepas log masuk


配置 tomcat 运行jvm 配置

set JAVA_OPTS=-server -Xms4400M-Xmx4400M -Xss512k -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:PermSize=128M-XX:MaxPermSize=256M -XX:+DisableExplicitGC -XX:MaxTenuringThreshold=31-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection-XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly-Djava.awt.headless=true

应用 c3p0 连接池配置:

<bean id="dataSource" 
       class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close"> 
        <propertyname="driverClass" value="com.mysql.jdbc.Driver" /> 
        <property name="jdbcUrl"value="jdbc:mysql://192.168.4.112:3306/iod1000?useUnicode=true&characterEncoding=utf-8"/> 
      <propertyname="checkoutTimeout" value="60000"/>
     <propertyname="idleConnectionTestPeriod" value="30"/>
     <propertyname="initialPoolSize" value="50"/>
     <property name="maxPoolSize"value="800"/>
     <property name="minPoolSize"value="50"/>
     <propertyname="maxStatements" value="100"/>
    <propertyname="properties"> 
        <props>          
            <propkey="preferredTestQuery">SELECT 1</prop>   
            <propkey="c3p0.maxIdleTime">25000</prop>   
            <propkey="c3p0.testConnectionOnCheckout">true</prop> 
            <propkey="user">root</prop>   
            <prop key="password">iptv4Um8</prop> 
        </props> 
      </property> 
</bean>
Salin selepas log masuk


 

查询配置了mysql 最大连接数 1000, 配置 c3p0 连接池 800 配置 tomcat 链接 800 测试结果:

CPU 8Core 12% usage

Memmory900M/2.4G 120q/S

这个时候碰到的问题就是 cpu 和 内存 都没有达到上限,但是查询的 性能却提升不上去了。

 

5 试用jconsole 查看tomcat 中的 线程状态,好多线程都是 blocked on java.util.logging.console 原来是线程一直在等待写日志被block住了。

把写log的语句 全部注释掉。OK 系统终于飞起来了。

现在 能达到 250q/S。

 

需要检查的地方:

CPU

内存

mysql最大连接数

tomcat 连接数配置

tomcat JVM 配置 重要的是内存大小

数据库连接池配置:

程序内部的瓶颈。

 

 

 

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Sistem pemanduan pintar Qiankun ADS3.0 Huawei akan dilancarkan pada bulan Ogos dan akan dilancarkan pada Xiangjie S9 buat kali pertama Sistem pemanduan pintar Qiankun ADS3.0 Huawei akan dilancarkan pada bulan Ogos dan akan dilancarkan pada Xiangjie S9 buat kali pertama Jul 30, 2024 pm 02:17 PM

Pada 29 Julai, pada majlis pelepasan kereta baharu AITO Wenjie yang ke-400,000, Yu Chengdong, Pengarah Urusan Huawei, Pengerusi Terminal BG, dan Pengerusi Smart Car Solutions BU, menghadiri dan menyampaikan ucapan dan mengumumkan bahawa model siri Wenjie akan akan dilancarkan tahun ini Pada bulan Ogos, Huawei Qiankun ADS 3.0 versi telah dilancarkan, dan ia dirancang untuk terus naik taraf dari Ogos hingga September. Xiangjie S9, yang akan dikeluarkan pada 6 Ogos, akan memperkenalkan sistem pemanduan pintar ADS3.0 Huawei. Dengan bantuan lidar, versi Huawei Qiankun ADS3.0 akan meningkatkan keupayaan pemanduan pintarnya, mempunyai keupayaan bersepadu hujung-ke-hujung, dan mengguna pakai seni bina hujung ke hujung baharu GOD (pengenalpastian halangan am)/PDP (ramalan). membuat keputusan dan kawalan), menyediakan fungsi NCA pemanduan pintar dari ruang letak kereta ke ruang letak kereta, dan menaik taraf CAS3.0

Perbandingan prestasi Windows 10 vs. Windows 11: Mana satu yang lebih baik? Perbandingan prestasi Windows 10 vs. Windows 11: Mana satu yang lebih baik? Mar 28, 2024 am 09:00 AM

Perbandingan prestasi Windows 10 vs. Windows 11: Mana satu yang lebih baik? Dengan pembangunan dan kemajuan teknologi yang berterusan, sistem pengendalian sentiasa dikemas kini dan dinaik taraf. Sebagai salah satu pembangun sistem pengendalian terbesar di dunia, siri sistem pengendalian Microsoft Windows sentiasa menarik perhatian ramai pengguna. Pada tahun 2021, Microsoft mengeluarkan sistem pengendalian Windows 11, yang mencetuskan perbincangan dan perhatian yang meluas. Jadi, apakah perbezaan prestasi antara Windows 10 dan Windows 11?

Membandingkan prestasi sistem Win11 dan Win10, yang manakah lebih baik? Membandingkan prestasi sistem Win11 dan Win10, yang manakah lebih baik? Mar 27, 2024 pm 05:09 PM

Sistem pengendalian Windows sentiasa menjadi salah satu sistem pengendalian yang paling banyak digunakan pada komputer peribadi, dan Windows 10 telah lama menjadi sistem pengendalian perdana Microsoft sehingga baru-baru ini apabila Microsoft melancarkan sistem Windows 11 baharu. Dengan pelancaran sistem Windows 11, orang ramai mula berminat dengan perbezaan prestasi antara sistem Windows 10 dan Windows 11 yang mana satu yang lebih baik antara kedua-duanya? Pertama, mari kita lihat W

Sentiasa baru! Siri Huawei Mate60 dinaik taraf kepada HarmonyOS 4.2: Peningkatan awan AI, Dialek Xiaoyi sangat mudah digunakan Sentiasa baru! Siri Huawei Mate60 dinaik taraf kepada HarmonyOS 4.2: Peningkatan awan AI, Dialek Xiaoyi sangat mudah digunakan Jun 02, 2024 pm 02:58 PM

Pada 11 April, Huawei secara rasmi mengumumkan pelan peningkatan 100 mesin HarmonyOS 4.2 kali ini, lebih daripada 180 peranti akan mengambil bahagian dalam peningkatan, meliputi telefon bimbit, tablet, jam tangan, fon kepala, skrin pintar dan peranti lain. Pada bulan lalu, dengan kemajuan mantap pelan peningkatan 100 mesin HarmonyOS4.2, banyak model popular termasuk Huawei Pocket2, siri Huawei MateX5, siri nova12, siri Huawei Pura, dll. juga telah mula menaik taraf dan menyesuaikan diri, yang bermaksud bahawa akan ada Lebih ramai pengguna model Huawei boleh menikmati pengalaman biasa dan selalunya baharu yang dibawa oleh HarmonyOS. Berdasarkan maklum balas pengguna, pengalaman model siri Huawei Mate60 telah bertambah baik dalam semua aspek selepas menaik taraf HarmonyOS4.2. Terutamanya Huawei M

Prestasi larian tempatan perkhidmatan Embedding melebihi OpenAI Text-Embedding-Ada-002, yang sangat mudah! Prestasi larian tempatan perkhidmatan Embedding melebihi OpenAI Text-Embedding-Ada-002, yang sangat mudah! Apr 15, 2024 am 09:01 AM

Ollama ialah alat super praktikal yang membolehkan anda menjalankan model sumber terbuka dengan mudah seperti Llama2, Mistral dan Gemma secara tempatan. Dalam artikel ini, saya akan memperkenalkan cara menggunakan Ollama untuk mengvektorkan teks. Jika anda belum memasang Ollama secara tempatan, anda boleh membaca artikel ini. Dalam artikel ini kita akan menggunakan model nomic-embed-text[2]. Ia ialah pengekod teks yang mengatasi prestasi OpenAI text-embedding-ada-002 dan text-embedding-3-small pada konteks pendek dan tugas konteks panjang. Mulakan perkhidmatan nomic-embed-text apabila anda telah berjaya memasang o

Perbandingan prestasi rangka kerja Java yang berbeza Perbandingan prestasi rangka kerja Java yang berbeza Jun 05, 2024 pm 07:14 PM

Perbandingan prestasi rangka kerja Java yang berbeza: Pemprosesan permintaan REST API: Vert.x adalah yang terbaik, dengan kadar permintaan 2 kali SpringBoot dan 3 kali Dropwizard. Pertanyaan pangkalan data: HibernateORM SpringBoot adalah lebih baik daripada Vert.x dan ORM Dropwizard. Operasi caching: Pelanggan Hazelcast Vert.x lebih unggul daripada mekanisme caching SpringBoot dan Dropwizard. Rangka kerja yang sesuai: Pilih mengikut keperluan aplikasi Vert.x sesuai untuk perkhidmatan web berprestasi tinggi, SpringBoot sesuai untuk aplikasi intensif data, dan Dropwizard sesuai untuk seni bina perkhidmatan mikro.

Pembalikan nilai kunci tatasusunan PHP: analisis perbandingan prestasi kaedah yang berbeza Pembalikan nilai kunci tatasusunan PHP: analisis perbandingan prestasi kaedah yang berbeza May 03, 2024 pm 09:03 PM

Perbandingan prestasi kaedah membalik nilai kunci tatasusunan PHP menunjukkan bahawa fungsi array_flip() berprestasi lebih baik daripada gelung for dalam tatasusunan besar (lebih daripada 1 juta elemen) dan mengambil masa yang lebih singkat. Kaedah gelung untuk membalikkan nilai kunci secara manual mengambil masa yang agak lama.

Apakah kesan fungsi C++ terhadap prestasi program? Apakah kesan fungsi C++ terhadap prestasi program? Apr 12, 2024 am 09:39 AM

Kesan fungsi pada prestasi program C++ termasuk overhed panggilan fungsi, pembolehubah tempatan dan overhed peruntukan objek: Overhed panggilan fungsi: termasuk peruntukan bingkai tindanan, pemindahan parameter dan pemindahan kawalan, yang mempunyai kesan ketara pada fungsi kecil. Overhed pembolehubah tempatan dan peruntukan objek: Sebilangan besar pembolehubah tempatan atau penciptaan objek dan pemusnahan boleh menyebabkan limpahan tindanan dan kemerosotan prestasi.

See all articles