一、系統相關
1、查詢系統指定端口的連接數(統計80端口連接數):# netstat -ant | grep -i "80" | wc -l
2、查詢指定端口上有哪些進程佔用:# sudo netstat -lnp | grep 80
3、查詢進程詳情:# ll /proc/{PID}
查看網絡連接數:
netstat -an |wc -l
netstat -an |grep xx |wc -l 查看某個/特定ip的連接數
netstat -an |grep TIME_WAIT|wc -l 查看連接數等待time_wait狀態連接數
netstat -an |grep ESTABLISHED |wc -l 查看建立穩定連接數量
查看最大socket連接數:
使用命令ulimit -a查看,其中open files就是最大連接數。
修改最大連接數:vi /etc/security/limits.conf 文件末尾添加或修改成如下:
*soft nofile 32768
*hard nofile 32768
重啓即可生效,或者使用ulimit -n 204800臨時生效。
二、容器相關
1、undertow容器
# 是否打開 undertow 日誌,默認爲 false
server.undertow.accesslog.enabled=false
# 設置訪問日誌所在目錄
server.undertow.accesslog.dir=logs
# 指定工作者線程的 I/0 線程數,默認爲 2 或者 CPU 的個數
server.undertow.io-threads=
# 指定工作者線程個數,默認爲 I/O 線程個數的 8 倍
server.undertow.worker-threads=
# 設置 HTTP POST 內容的最大長度,默認不做限制
server.undertow.max-http-post-size=0
三、數據庫
1、查看sql執行情況
在服務器上執行mysql -u root -p之後,輸入show full processlist; 可以看到正在執行的語句。
2、查看索引信息(查看某一表索引)
SELECT * FROM mysql.`innodb_index_stats` a WHERE a.`database_name` = '數據庫名' and a.table_name like '%表名%';
3、查詢sql的執行策略
通過EXPLAIN分析SQL語句
EXPLAIN SELECT id,title,most_top,view_count,posttime FROM article where title='dddd'
4、連接數
mysql> show status like 'Threads%';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Threads_cached | 58 |
| Threads_connected | 57 | ###這個數值指的是打開的連接數
| Threads_created | 3676 |
| Threads_running | 4 | ###這個數值指的是激活的連接數,這個數值一般遠低於connected數值
+-------------------+-------+
Threads_connected 跟show processlist結果相同,表示當前連接數。準確的來說,Threads_running是代表當前併發數
這是是查詢數據庫當前設置的最大連接數
mysql> show variables like '%max_connections%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 1000 |
+-----------------+-------+
可以在/etc/my.cnf裏面設置數據庫的最大連接數
[mysqld]
max_connections = 1000
設置最大連接數
mysql> set GLOBAL max_connections=2000;
mysql> set GLOBAL max_user_connections=1500;
mysql> show global variables like "max%connections";
5、數據包大小設置:
mysql> show VARIABLES like '%max_allowed_packet%';
修改方法:
方法1:可以編輯 my.cnf 來修改(windows下my.ini),在[mysqld]段或者mysql的server配置段進行修改。
max_allowed_packet = 20M
如果找不到my.cnf可以通過mysql --help | grep my.cnf
方法2:進入mysql server 在mysql 命令行中運行
set global max_allowed_packet = 2*1024*1024*10
然後關閉 mysql server鏈接,再進入