ubuntu + nginx 1.26 + php7.4 + mysql8.0 調優

服務器配置 8核 16G

查看內存 free -h

nginx配置

worker_processes auto; ? ? ? ?  # 自動檢測CPU核心數
worker_rlimit_nofile 65535; ? ? # 提高文件描述符限制
?
events {worker_connections 8192; ?  # 每個worker的最大連接數multi_accept on; ? ? ? ? ?  # 一次性接受所有連接use epoll; ? ? ? ? ? ? ? ?  # 使用epoll事件模型
}
?
http {include mime.types;default_type application/octet-stream;sendfile on; ? ? ? ? ? ? ?  # 高效文件傳輸tcp_nopush on; ? ? ? ? ? ?  # 減少網絡包數量tcp_nodelay on; ? ? ? ? ? ? # 實時數據傳輸keepalive_timeout 65; ? ? ? # 長連接超時時間server_tokens off; ? ? ? ?  # 隱藏Nginx版本信息# Gzip壓縮gzip on;gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;# 虛擬主機配置include /etc/nginx/conf.d/*.conf;include /etc/nginx/sites-enabled/*;
}

mysql數據庫調優

基本配置

[mysqld]
# 基礎設置
# 僅本地訪問
bind-address = 127.0.0.1 ? ?
port = 3306
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
# 最大連接數
max_connections = 300 ? ? ? ?
# 連接超時時間
wait_timeout = 600 ? ? ? ? ? 
?
# 內存分配 (約占總內存的60%)
# InnoDB緩沖池大小
innodb_buffer_pool_size = 6G ?
# 日志文件大小
innodb_log_file_size = 512M ?
# MyISAM索引緩沖區
key_buffer_size = 128M ? ? ? ? ?
#排序操作緩沖區大小 推薦值:1M-8M,根據服務器內存和查詢復雜度調整 如從 2M 逐步增加到 4M、8M
sort_buffer_size = 4M ? ? ? ? ?
# 隨機讀緩沖區 ? ? ? 
read_rnd_buffer_size = 4M ? ? ? ? ?
# JOIN操作緩沖區 ? ? ? 
join_buffer_size = 4M ? ? ? ? 
?
# 性能優化
# 平衡性能與安全性
innodb_flush_log_at_trx_commit = 2 ? 
# 二進制日志同步頻率
sync_binlog = 100 ? ? ? ? ? ? ? ? ? ? 
# IOPS估計值
innodb_io_capacity = 2000 ? ? ? ? ? ?
# 讀IO線程數
innodb_read_io_threads = 8 ? ? ? ? ? 
# 寫IO線程數
innodb_write_io_threads = 8 ? ? ? ? ?
# 線程并發數
innodb_thread_concurrency = 16
?
# 在【mysqld】下加入以下配置(解決group by報錯解決)
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
group_concat_max_len = 102400
# 時區設置
default-time_zone = '+8:00'

開啟緩慢sql日志

# 啟用慢查詢日志
slow_query_log = 1
# 慢查詢日志文件路徑
slow_query_log_file = /var/log/mysql/mysql-slow.log
# 設置慢查詢時間閾值(單位:秒)
long_query_time = 3
# 記錄未使用索引的查詢
log_queries_not_using_indexes = 1

php-fmp 配置優化

基礎配置

計算最大進程數# 計算平均php進程平均內存
ps -ylC php-fpm7.4 --sort:rss | awk '{sum+=$8; n++} END {print "平均內存(KB): " sum/n}'
# 計算最大進程數  PHP-FPM + MySQL 總內存建議控制在 12GB 左右(留 4GB 給系統)
# 可用內存(MB) ÷ 單個進程內存(MB) = 最大進程數

配置 /etc/php/7.4/fpm/pool.d/www.conf

[www]
pm = dynamic
; (1024MB*6) ÷ 32MB ≈ 192(pm.max_children值)
pm.max_children = 190 ? ? ?
; 初始進程數
pm.start_servers = 20 ? ? 
; 最小空閑進程數
pm.min_spare_servers = 10 ?
; 最大空閑進程數
pm.max_spare_servers = 30 ? ?
; 空閑進程超時時間
pm.process_idle_timeout = 10s 
; 單個請求最大執行時間(秒)
request_terminate_timeout = 30 
; 慢請求日志閾值
request_slowlog_timeout = 5s ?
; 慢請求日志路徑
slowlog = /var/log/php7.4-fpm-slow.log 
; 提高文件描述符限制
rlimit_files = 65535 ? ? ?
 ? ?

啟用 OPcache 默認啟動

[opcache]
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.validate_timestamps=1
opcache.revalidate_freq=1
opcache.fast_shutdown=1

壓力測試 ApacheBench

安裝

sudo apt install apache2-utils# 模擬1個客戶端請求100次:
ab -n 100 http://www.example.com/# 模擬100個客戶端請求10000次:
ab -n 10000 -c 100 http://www.example.com/# 調用POST方法的接口10次,傳輸的數據格式為JSON:
ab -n 10 -p json-file http://www.example.com/# 調用OPTIONS方法的接口10次:
ab -n 10 -m OPTIONS http://www.example.com/# 輸出每次請求的返回信息:
ab -n 10 -v 2 http://www.example.com/

測試效果顯著

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/84548.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/84548.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/84548.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[未驗證]abaqus2022 更改內置python

如何在 Abaqus 2022 中更改內置 Python 在 Abaqus 中,Python 是常用的腳本語言,它使得用戶能夠自動化模型的創建、分析和后處理。可能有時候你需要更改默認的 Python 版本,比如使用特定庫或者功能。本文將為您詳細說明如何在 Abaqus 2022 中更…

RAG文檔解析難點2:excel數據“大海撈針”,超大Excel解析與精準行列查詢指南

寫在前面 在構建檢索增強生成(RAG)應用時,Excel文件是不可或缺的數據源。它們通常包含了企業運營、市場分析、科學研究等各個領域的寶貴數據。然而,當這些Excel文件變得“超大”——可能包含數十萬甚至數百萬行數據時,傳統的解析方法和RAG數據處理流程將面臨嚴峻的內存、…

深度掌控,智啟未來 —— 基于 STM32F103RBT6 的控制板

在科技浪潮奔涌向前的時代,電子領域的創新發展從未停歇。對于電子工程師、科研工作者以及電子技術愛好者,在校電子專業學生而言,一款性能卓越、功能全面且穩定可靠的開發板,是探索電子世界奧秘、實現創意構想的關鍵基石。今天&…

什么樣的登錄方式才是最安全的?

目錄 一、基礎協議:HTTP與HTTPS HTTP協議 HTTPS協議 二、常見Web攻擊與防御 2.1 XSS 常見攻擊手段 針對XSS 攻擊竊取 Cookie 2.2 CSRF CSRF攻擊的核心特點 與XSS的區別 常見防御措施 三、疑問解答 四、登錄方式演變 4.1 方案一🐶狗都不用 …

android studio底部導航欄

實現底部導航欄切換 將java文件return的xml文件賦值給頁面FrameLayout控件 java文件BottomNavigationView,監聽器setOnNavigationItemSelectedListener MainActivity.java代碼 package com.example.myapplication;import android.os.Bundle;import androidx.appc…

vue-router相關理解

一、前言 隨著 Vue.js 在前端開發中的廣泛應用,Vue Router 成為了 Vue 官方推薦的路由管理器。它不僅支持單頁面應用(SPA)中常見的路由跳轉、嵌套路由、懶加載等功能,還提供了導航守衛、動態路由等高級特性。 本文將帶你深入了解…

uni-app 自定義路由封裝模塊詳解(附源碼逐行解讀)

🚀uni-app 自定義路由封裝模塊詳解(附源碼逐行解讀) 📌 請收藏 點贊 關注,獲取更多 uni-app 項目實用技巧! 在實際 uni-app 項目中,我們常常需要對 uni.navigateTo、uni.switchTab 等 API 做…

QML顯示圖片問題解決辦法

以前用qtwediget的時候,好像是放在qlabel或者什么組件上面,把圖片的路徑放上去就可以直接加載,但我用QML創建界面的時候就遇到了問題,哦對,qtwedget用qpixmap組件顯示圖片,也有image。話說回來,…

Vue中使用jsx

1. jsx的babel配置 1.1 在項目中使用jsx,需要添加對jsx的支持: jsx通常會通過Babel來進行轉換(React編寫的jsx就是通過babel轉換的)Vue中,只需要在Babel中配置對應的插件即可以下列舉需要支持轉換的案例: template -> vue-l…

Spring Cache+Redis緩存方案 vs 傳統redis緩存直接使用RedisTemplate 方案對比

結合 Spring Cache 和 Redis 的緩存方案(即 Spring Cache Redis)相較于普通的 Redis 緩存使用(如直接通過 RedisTemplate 操作),具有以下顯著優勢: 具體實現方案請參考:Spring CacheRedis緩存…

Web應用安全漏洞掃描:原理、常用方法及潛在風險解析?

Web應用安全的關鍵環節在于進行漏洞掃描,這種掃描通過自動化或半自動化的方式,對應用進行安全測試。它能揭示出配置錯誤、代碼缺陷等眾多安全風險。接下來,我將詳細闡述這些情況。 掃描原理 它主要模擬攻擊者的行為,以探測和攻擊…

Spring中@Value注解:原理、加載順序與實戰指南

文章目錄 前言一、Value注解的核心原理1.1 容器啟動階段:環境準備1.2 Bean實例化階段:后置處理器介入1.3 值解析階段:雙引擎處理1. 占位符解析(${...})2. SpEL表達式解析(#{...}) 1.4 類型轉換與…

MySQL 8配置文件詳解

MySQL 8 配置文件詳解 MySQL 8 的配置文件(my.cnf或my.ini)是MySQL服務器啟動時讀取的主要配置文件,它包含了服務器運行所需的各種參數設置。以下是MySQL 8配置文件的詳細解析: 配置文件位置 MySQL 8 會按照以下順序查找配置文件: /etc/m…

臺灣住宅IP哪家好,怎么找到靠譜的海外住宅IP代理商

探索臺灣住宅IP:如何找到靠譜的海外住宅IP代理商? 在當今數字化時代,海外住宅IP的需求日益增長,尤其在跨境電商、網絡營銷、數據抓取等領域。對于需要臺灣住宅IP的用戶來說,找到一家靠譜的海外住宅IP代理商至關重要。本…

讀研一些畢業感想

回首過往三年,從躊躇迷茫到明晰堅定,從稚嫩懵懂到明理成熟,一切只覺輕舟已過萬重山。 依稀記得我拉著行李箱跋山涉水來到學校的那天,早上從廣東中山乘坐10小時高鐵到北京西,然后坐1一個多小時地鐵到學校&#x…

《飛算JavaAI:穩定、高效、跨平臺的AI編程工具優勢解析》

隨著人工智能技術的不斷發展,AI編程工具越來越成為開發者們在研究和應用AI模型時不可或缺的利器。國內外的AI編程工具多種多樣,涵蓋了從基礎編程語言、框架到圖形化界面的多種選擇。然而,在這些工具中,飛算JavaAI作為一種基于Java…

day27/60重寫(補充)

DAY 27 函數專題2:裝飾器 ps:第一期day27對應5月16日 知識點回顧: 裝飾器的思想:進一步復用函數的裝飾器寫法注意內部函數的返回值 作業: 編寫一個裝飾器 logger,在函數執行前后打印日志信息(如…

網傳西門子12億美元收購云原生工業軟件,云化PLM系統轉機在協同

近日,網傳西門子將以12億美元全現金交易收購云原生MES公司FlexFact,并整合其技術至Xcelerator工業軟件平臺。如果此次收購動作完成,將會成為西門子加速工業云轉型的標志性動作,背后的意義也極為深遠,不僅會直接響應競爭…

大模型筆記_檢索增強生成(RAG)

1. RAG的概念 RAG(Retrieval-Augmented Generation) 是一種結合 信息檢索(Retrieval)與文本生成(Generation)的模型架構,旨在通過動態引入外部知識庫或實時數據,提升大語言模型&…

Spring Security是如何完成身份認證的?

1. 用戶名和密碼被過濾器獲取到,封裝成 Authentication ,通常情況下是 UsernamePasswordAuthenticationToken 這個實現類。 2. AuthenticationManager 身份管理器負責驗證這個 Authentication 3. 認證成功后, AuthenticationManager 身份管理器返回一…