系統優化相關的命令

一、系統相關

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鏈接,再進入 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章