本文目錄一覽:
- 1、如何設置寶塔面板優化php伺服器性能
- 2、有效提高ThinkPHP的應用性能的幾點建議
- 3、php7 mysql5.7 與以前版本 有哪些性能優化
- 4、PHP網站怎麼做SEO優化
- 5、如何設置BT寶塔面板並優化php伺服器性能
- 6、如何對低硬體配置的中小型php網站進行性能優化
如何設置寶塔面板優化php伺服器性能
1.定期釋放內存
2.添加swap
3.安裝php緩存擴展
4.php配置調整
5.php並發調整
6.php版本和mysql數據版本
7.卸載多餘擴展插件
8.搭配阿里雲存儲oss使用
以上純手打。只是列出個大概。具體還得自己慢慢優化。
有效提高ThinkPHP的應用性能的幾點建議
架構優化涉及到技術、存儲、網路、服務的選型和構架,盡量使用成熟和現代的開發架構和設計模式。前後端完全分離設計,便於前後端的獨立優化,也更加便於測試工作。
如果你的應用遇到了性能瓶頸,這個時候要考慮的就是優化架構而不是優化代碼本身,因為架構層面的優化效果往往是最顯著的。
架構的優化需要根據自身運營情況來調整,切忌不可按圖索驥提前優化,反而容易得不償失,導致技術成本提高甚至「負優化」
部署環境千萬不要忘記關閉調試模式,這不僅僅是出於性能考慮,更多是基於安全因素。事實上,建議通過環境變數來配置關閉調試模式,這樣部署後不需要更改任何配置文件。
因為調試模式影響日誌記錄信息、額外的調試信息和緩存失效,關閉調試模式能夠帶來一定的性能提升
使用多模塊功能會增加文件的 I/O 開銷和額外的配置及檢查,如非必要在規劃你的應用架構的時候盡量考慮使用單一模塊,然後使用控制器分級來解決控制器過多的問題。
使用單一模塊的性能優勢,在部署到 swoole 的時候可以得到更加充分的體現,因為應用文件一旦啟動服務,就會載入內存,而模塊的相關文件則會每次請求重新載入。
在定義路由規則的時候,不要使用數組方式,盡量使用方法註冊路由,並且多使用路由分組(或者資源路由)。分組路由可以減少路由的匹配次數,從而提升路由性能。如果你有多個域名的不同路由,也要按域名規劃使用路由。
儘可能設計在路由中進行當前路由的數據驗證和許可權檢查等操作,一方面比較清晰,另外一方面可以盡量把驗證操作提前,而不必等到控制器執行。
在分組比較多的情況下,開啟路由的延遲解析。
如果同一個分組下面有比較多的路由規則,建議合併路由規則
對於 GET 請求的路由,可以設置路由的請求緩存。
部署階段,可以開啟路由緩存。
首先保持良好的開發習慣,了解 Db類和模型的正確使用姿勢 ,資料庫本身的性能優化可以參考 MySQL性能優化的最佳21條經驗 ,下面主要是對框架中數據查詢相關的優化策略。
盡量減少每次請求的查詢次數,並對實時性要求不高的數據查詢合理規劃數據查詢緩存(優先考慮使用 Redis 緩存)
如果使用了關聯查詢, cache 方法只能用於主模型的數據緩存,但你可以使用 Cache 類的 remember 方法進行方便的數據緩存。
盡量減少查詢次數是出於性能考慮,但不是必須,使用最少的查詢不代表性能就一定是最高。一個複雜的 JOIN 查詢性能不見得有兩次簡單的查詢高,而使用簡單的查詢反而更清晰易懂,並且更方便進行數據查詢緩存。
不要總是以為模型的性能一定比 Db 類低,框架的ORM查詢設計經過了較為合理的優化,正確使用模型一樣可以有出色的性能,而且比 Db 查詢要方便很多。
尤其是對於一些複雜的設計來說使用模型關聯顯得比直接用Db更加簡單,例如使用關聯預載入查詢就可以避免 N+1 查詢問題。
如果用 Db 類自己實現的話,費時費力,性能還不一定優。
對於內存開銷比較大的應用,在做大量數據查詢和處理的時候,使用 cursor 方法,可以利用PHP的生成器特性,減少內存佔用。
你會發現用戶數據不論是1萬還是10萬級別,內存開銷並沒有大的變化。
涉及到對大量數據的處理,包括數據遷移、批量更新,盡量使用命令行指令運行,否則會因為超時而中斷
可以通過數據集的方法完成的子集或者排序操作不要再次查詢,例如:
利用下面指令在部署後生成欄位緩存,可以減少每次數據表的欄位查詢開銷。
注意:一旦資料庫的表結構發生變化,必須重新生成。
每次在應用初始化或者模塊初始化的時候會有一定的 I/O 開銷,如果已經開啟 OpCache 的話對性能影響甚微,如果比較在意的也可以通過命令行指令生成配置緩存(包括相關的公共文件和各種定義文件)。
生成應用配置緩存:
生成模塊配置緩存:
注意:一旦配置或者公共文件發生變化,必須重新生成。
類庫映射可以提升類庫的自動載入性能,使用下面的指令可以生成系統類庫和應用類庫的類庫映射(包括 extend 目錄下的類庫)。
vendor 目錄下的類庫可以使用 composer 的 dump-autoload 指令優化載入性能。
該命令把 PSR-0 和 PSR-4 轉換為一個類映射表,來提高類的載入速度。
php7 mysql5.7 與以前版本 有哪些性能優化
1.首先可以考慮業務層面優化,即垂直分表。
垂直分表就是把一個數據量很大的表,可以按某個欄位的屬性或使用頻繁程度分類,拆分為多個表。
如有多種業務類型,每種業務類型入不同的表,table1,table2,table3.
如果日常業務不需要使用所有數據,可以按時間分表,比如說月表。每個表只存一個月記錄。
2.架構上的優化,即水平分表。
水平分表就是根據一列或多列數據的值把數據行放到多個獨立的表裡,這裡不具備業務意義。
如按照id分表,末尾是0-9的數據分別插入到10個表裡面。
可能你要問,這樣看起來和剛才說的垂直分表沒什麼區別。只不過是否具備業務意義的差異,都是按欄位的值來分表。
實際上,水平分表現在最流行的實現方式,是通過水平分庫來實現的。即剛才所說的10個表,分布在10個mysql資料庫上。這樣可以通過多個低配置主機整合起來,實現高性能。
PHP網站怎麼做SEO優化
優化網站,對於PHP來說主要有以下幾點
代碼分析,找出耗時長或者卡頓的代碼加以優化。
循環太多:循環太多就考慮如何去掉循環,或者優化循環體結構,包括每次提前計算好變數,不在循環體內做過多運算。
IO瓶頸:就是sql語句有缺陷,或者磁碟讀寫過慢,網路帶寬過低。sql優化包括索引優化,啟用redis或memcache,分表分庫等等優先順序從前到後,網上都有很多教程。磁碟讀寫慢,就要考慮上固態硬碟。帶寬就要聯繫網路運營商解決
精簡前端頁面。現在頁面功能越來越複雜,卡頓不一定是後台,前端出現問題也很多。包括頁面內容太多(適當縮減一部分網頁內容),js,css,圖片太大(對js,css進行壓縮,去掉冗餘代碼等。使用壓縮格式的圖片,如jpg格式控制圖片大小(盡量在100K甚至10K以內)啟用網頁緩存等)
深度優化性能,包括採用更快的PHP(PHP7.2),更快的伺服器(Linux+nginx),更快的mysql(讀寫分離)等等。
如何設置BT寶塔面板並優化php伺服器性能
設置寶塔面板需要安裝組件,然後參考寶塔面板優化 php 伺服器性能,按照裡面的設置,一項項的操作完畢,就差不多了。
寶塔面板把優化php已經變成一件很簡單的事情了。
如何對低硬體配置的中小型php網站進行性能優化
本人對php不熟悉,現在採用PHP的magento開源項目來做,在盡量少代碼修改的情況下讓頁面載入快些(期望日IP少於2,000,PV少於50,000,首頁打開3s以內)。網站是運行在Digital ocean的VPS(1GB 內存,30GB SSD硬碟)上的,不能做負載均衡。
這個站的圖片比較多,也比較大,但總體數據量在10GB以下。在chrome下監控了打開速度,發現首頁文件等待時間達到了5s,而接收時間為幾百毫秒。另外一些靜態文件(JS,CSS很大,並且都在head內)也block住了其他頁面元素的下載和頁面渲染。所以需要對頁面和伺服器同時進行優化。
我的想法是從以下幾個方面來做:
1.首先從架構上使用lanmp(偏向這個)或者lamp。
打算使用網上的一鍵安裝包,不太清楚這幾個之間最佳的版本組合是什麼樣的(都用最新版本?)? 是自己單獨編譯還是一鍵安裝好?
2.服務端優化,主要使用緩存手段
1)Zend Optimizer優化PHP
2)APC、eaccelerator或者XCache對PHP緩存以及最新出來的Opcache。哪個比較好?
3)Varnish配合Nginx進行緩存靜態資源緩存。相對於squid,哪個比較好?
4)memcached進行資料庫緩存
1-4項同時使用不知道會不會有沒有衝突?或者有沒有更好的方案。因為不想對代碼進行大改,所以服務端緩存最佳實踐這塊請重點給出意見。
3. 使用CDN加速靜態資源
4. 優化靜態資源,使用minify來合併壓縮CSS,JS這些靜態資源
5. 啟用gzip
6. 對圖片和JS等靜態資源增加Expires頭,這條應該算頁面優化吧,放到後面來。
參考了一些資料後發現優化方法有很多,用的太多方法(特別是緩存手段)隱患越大,有沒有優化的最佳策略或者方法論(而不僅僅從工具上)?
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/232377.html