2022-09-15 10:29:02 - 米境通跨境電商
有很多人來問,opencart是不是一個(gè)小系統(tǒng),只能做個(gè)人電子商務(wù)網(wǎng)站,在2013年時(shí)候就有幾個(gè)客戶讓我?guī)椭鰋pencart站點(diǎn)優(yōu)化。
總結(jié)下來是這樣:
opencart原系統(tǒng)本身適合做中小企業(yè),數(shù)據(jù)庫也就是幾十張表,從安裝文件大小也能看出都比其它任何一個(gè)電商系統(tǒng)小,當(dāng)然大家希望它能撐起一個(gè)地球。
最近花了一周時(shí)間和一家高科技公司聯(lián)合測試了其性能情況。
基礎(chǔ)硬件環(huán)境:
CPU: Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz (2核)
物理內(nèi)存:2 GB (集成顯卡會占用一部分,真實(shí)為1.833 GB)
空間大?。?.451 GB(含操作系統(tǒng))
系統(tǒng)配置是不是比較差?
軟件環(huán)境:
OS版本:CentOS release 6.4
PHP版本: 5.3.28
mysql版本: 5.5.37
nginx版本: 1.7.3
網(wǎng)絡(luò)環(huán)境:
服務(wù)器位置:國內(nèi)
網(wǎng)絡(luò)帶寬:共享50M
測試情況:
1、在沒有做任何優(yōu)化情況下
1.1當(dāng)商品數(shù)量比較少,只有幾十個(gè)情況
結(jié)果:這種情況下響應(yīng)在3S內(nèi),都還正常。
1.2當(dāng)商品數(shù)量增加到2000個(gè)后
結(jié)果:響應(yīng)開始變慢,客戶需要等待,頁面請求響應(yīng)在4S左右。
1.3當(dāng)商品數(shù)量增加到10000個(gè)后
結(jié)果:響應(yīng)變的很慢,客戶訪問不流暢,不能正常瀏覽。
網(wǎng)站慢的原因是什么?主要是網(wǎng)絡(luò)帶寬,數(shù)據(jù)庫響應(yīng)慢造成的,同樣的網(wǎng)絡(luò)環(huán)境,當(dāng)增加商品數(shù)量后,瓶頸主要在數(shù)據(jù)庫響應(yīng)方面;
很多人增加網(wǎng)絡(luò)帶寬,提高服務(wù)器空間等做法都是徒勞的。
我檢查了,發(fā)現(xiàn)都是數(shù)據(jù)庫返回?cái)?shù)據(jù)慢造成的,其中有很多表的關(guān)聯(lián)(有的時(shí)候是業(yè)務(wù)邏輯復(fù)雜,有的時(shí)候是表設(shè)計(jì)上的問題),很多的統(tǒng)計(jì)數(shù)據(jù)類似 count(distinct *) 這樣的,玩過數(shù)據(jù)庫的人都知道這是致命的。
解決方案可以從幾個(gè)方面入手:
1. 數(shù)據(jù)庫緩存,使用一些緩存技術(shù)如 memory cache,這項(xiàng)技術(shù)需要占用較多的主機(jī)服務(wù)器內(nèi)存。
2. 頁面緩存, 將動態(tài)頁面全部變成靜態(tài)頁面,客戶訪問的是靜態(tài)文件,如: page chche
3. 程序優(yōu)化,優(yōu)化SQL,優(yōu)化后臺的表,這個(gè)比較撈命,很少人這樣做,除非是個(gè)大公司。
3. 高速緩存服務(wù)器,把數(shù)據(jù)庫表加入緩存中,讀寫進(jìn)行分離,并保持?jǐn)?shù)據(jù)一致性,專門為對數(shù)據(jù)庫訪問性能有較高要求,需要承載大量商品信息,輕松應(yīng)對復(fù)雜應(yīng)用程序而設(shè)計(jì)。
下面我們在高速緩存服務(wù)器做了些測試,情況如下:
測試主機(jī): http://180.169.58.214/
將商品數(shù)量添加到20000個(gè),用戶頁面瀏覽響應(yīng)在 1S 左右。
我起了 400 個(gè)并發(fā),返回測試記錄如下:
Overview
================================================================================
Report name: 2014-7-10 17:19:44
Run on: 2014-7-10 17:19:44
Run length: 00:01:00
Web Application Stress Tool Version:1.1.293.1
Number of test clients: 1
Number of hits: 1770
Requests per Second: 29.43
Socket Statistics
--------------------------------------------------------------------------------
Socket Connects: 1826
Total Bytes Sent (in KB): 559.55
Bytes Sent Rate (in KB/s): 9.30
Total Bytes Recv (in KB): 17552.60
Bytes Recv Rate (in KB/s): 291.84
Socket Errors
--------------------------------------------------------------------------------
Connect: 3
Send: 0
Recv: 0
Timeouts: 0
RDS Results
--------------------------------------------------------------------------------
Successful Queries: 0
Script Settings
================================================================================
Server: 180.169.58.214
Number of threads: 400
Test length: 00:01:00
Warmup: 00:00:00
Cooldown: 00:00:00
Use Random Delay: No
Follow Redirects: Yes
Max Redirect Depth: 15
Clients used in test
================================================================================
localhost
Clients not used in test
================================================================================
Result Codes
Code Description Count
================================================================================
200 OK 1770
Page Summary
Page Hits TTFB Avg TTLB Avg Auth Query