tpcc資料庫
① 幾個常用的Mysql性能測試工具
1、mysqlslap
安裝:簡單,裝了mysql就有了
作用:模擬並發測試資料庫性能。
優點:簡單,容易使用。
不足:不能指定生成的數據規模,測試過程不清楚針對十萬級還是百萬級數據做的測試,感覺不太適合做綜合測試,比較適合針對既有資料庫,對單個sql進行優化的測試。
使用方法:
可以使用mysqlslap --help來顯示使用方法:
Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf
--concurrency代表並發數量,多個可以用逗號隔開,concurrency=10,50,100, 並發連接線程數分別是10、50、100個並發。
--engines代表要測試的引擎,可以有多個,用分隔符隔開。
--iterations代表要運行這些測試多少次。
--auto-generate-sql 代表用系統自己生成的SQL腳本來測試。
--auto-generate-sql-load-type 代表要測試的是讀還是寫還是兩者混合的(read,write,update,mixed)
--number-of-queries 代表總共要運行多少次查詢。每個客戶運行的查詢數量可以用查詢總數/並發數來計算。
--debug-info 代表要額外輸出CPU以及內存的相關信息。
--number-int-cols :創建測試表的 int 型欄位數量
--auto-generate-sql-add-autoincrement : 代表對生成的表自動添加auto_increment列,從5.1.18版本開始
--number-char-cols 創建測試表的 char 型欄位數量。
--create-schema 測試的schema,MySQL中schema也就是database。
--query 使用自定義腳本執行測試,例如可以調用自定義的一個存儲過程或者sql語句來執行測試。
--only-print 如果只想列印看看SQL語句是什麼,可以用這個選項。
mysqlslap -umysql -p123 --concurrency=100 --iterations=1 --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=mixed --engine=myisam --number-of-queries=10 --debug-info
或:
指定資料庫和sql語句:
mysqlslap -h192.168.3.18 -P4040 --concurrency=100 --iterations=1 --create-schema='test' --query='select * from test;' --number-of-queries=10 --debug-info -umysql -p123
要是看到底做了什麼可以加上:--only-print
Benchmark
Average number of seconds to run all queries: 25.225 seconds
Minimum number of seconds to run all queries: 25.225 seconds
Maximum number of seconds to run all queries: 25.225 seconds
Number of clients running queries: 100
Average number of queries per client: 0
以上表明100個客戶端同時運行要25秒
2、sysbench
安裝:
可以從http://sourceforge.net/projects/sysbench/ 下載
tar zxf sysbench-0.4.12.tar.gz
cd sysbench-0.4.12
./autogen.sh
./configure && make && make install
strip /usr/local/bin/sysbench
安裝時候可能會報錯,後來發現個好文 http://blog.csdn.net/icelemon1314/article/details/7004955 怕以後找不到,也貼過來吧
1.如果mysql不是默認路徑安裝,那麼需要通過指定--with-mysql-includes和--with-mysql-libs參數來載入mysql安裝路徑
2.如果報錯:
../libtool: line 838: X--tag=CC: command not found
../libtool: line 871: libtool: ignoring unknown tag : command not found
../libtool: line 838: X--mode=link: command not found
../libtool: line 1004: *** Warning: inferring the mode of operation is deprecated.: command not found
../libtool: line 1005: *** Future versions of Libtool will require --mode=MODE be specified.: command not found
../libtool: line 2231: X-g: command not found
../libtool: line 2231: X-O2: command not found
那麼執行下根目錄的:autogen.sh文件,然後重新configure && make && make install
3.如果報錯:
sysbench: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
那麼執行下:
n -s /usr/local/mysql5.5/mysql/lib/libmysqlclient.so.18 /usr/lib64/
4.如果執行autogen.sh時,報如下錯誤:
./autogen.sh: line 3: aclocal: command not found
那麼需要安裝一個軟體:
yum install automake
然後需要增加一個參數:查找: AC_PROG_LIBTOOL 將其注釋,然後增加AC_PROG_RANLIB
作用:模擬並發,可以執行CPU/內存/線程/IO/資料庫等方面的性能測試。資料庫目前支持MySQL/Oracle/PostgreSQL
優點:可以指定測試數據的規模,可以單獨測試讀、寫的性能,也可以測試讀寫混合的性能。
不足:測試的時候,由於網路原因,測試的非常慢,但是最終給的結果卻很好,並發支持很高,所以給我的感覺是並不太准確。當然也可能我沒搞明白原理
使用方法:
准備數據
sysbench --test=oltp --mysql-table-engine=myisam --oltp-table-size=400000 --mysql-db=dbtest2 --mysql-user=root --mysql-host=192.168.1.101 --mysql-password=pwd prepare
執行測試
sysbench --num-threads=100 --max-requests=4000 --test=oltp --mysql-table-engine=innodb --oltp-table-size=400000 --mysql-db=dbtest1 --mysql-user=root --mysql-host=192.168.1.101 --mysql-password=pwd run
sysbench 0.4.12: multi-threaded system evaluation benchmark
No DB drivers specified, using mysql
Running the test with following options:
Number of threads: 100
Doing OLTP test.
Running mixed OLTP test
Using Special distribution (12 iterations, 1 pct of values are returned in 75 pct cases)
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Maximum number of requests for OLTP test is limited to 4000
Threads started!
Done.
OLTP test statistics:
queries performed:
read: 56014
write: 20005
other: 8002
total: 84021
transactions: 4001 (259.14 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 76019 (4923.75 per sec.)
other operations: 8002 (518.29 per sec.)
Test execution summary:
total time: 15.4393s
total number of events: 4001
total time taken by event execution: 1504.7744
per-request statistics:
min: 33.45ms
avg: 376.10ms
max: 861.53ms
approx. 95 percentile: 505.65ms
Threads fairness:
events (avg/stddev): 40.0100/0.67
execution time (avg/stddev): 15.0477/0.22
3、tpcc-mysql
安裝:
如果從原網站上下載源碼比較麻煩,需要工具、注冊、生成證書等。這里提供一個下載包http://blog.chinaunix.net/blog/downLoad/fileid/8532.html
export C_INCLUDE_PATH=/usr/include/mysql
export PATH=/usr/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib/mysql
cd /tmp/tpcc/src
make
然後就會在 /tmp/tpcc-mysql 下生成 tpcc 命令行工具 tpcc_load 、 tpcc_start
作用:測試mysql資料庫的整體性能
優點:符合tpcc標准,有標準的方法,模擬真實的交易活動,結果比較可靠。
不足:不能單獨測試讀或者寫的性能,對於一些以查詢為主或者只寫的應用,就沒有這么大的意義了。
使用方法:
載入數據
創建庫
mysql>create database tpcc10;
創建表:
shell>mysql tpcc10 < create_table.sql
添加外鍵:
shell>mysql tpcc10 < add_fkey_idx.sql
載入數據:
1、單進程載入:
shell>./tpcc_load 192.168.11.172 tpcc10 root pwd 300
|主機||資料庫||用戶||密碼||warehouse|
2、並發載入:(推薦,但需要修改一下)
shell>./load.sh tpcc300 300
|資料庫||warehouse|
3、測試
./tpcc_start -h192.168.11.172 -d tpcc -u root -p 'pwd' -w 10 -c 10 -r 10 -l 60 -i 10 -f /mnt/hgfs/mysql/tpcc100_2013522.txt
***************************************
*** ###easy### TPC-C Load Generator ***
***************************************
option h with value '192.168.11.172'
option d with value 'tpcc'
option u with value 'root'
option p with value 'pwd'
option w with value '1'
option c with value '100'
option r with value '120'
option l with value '60'
option i with value '10'
option f with value '/mnt/hgfs/mysql/tpcc100_2013522.txt'
<Parameters>
[server]: 192.168.11.172
[port]: 3306
[DBname]: tpcc
[user]: root
[pass]: pwd
[warehouse]: 1
[connection]: 100
[rampup]: 120 (sec.)
[measure]: 60 (sec.)
RAMP-UP TIME.(120 sec.)
MEASURING START.
② TPCC的測試模型
TPC-C測試用到的模型是一個大型的商品批發銷售公司,它擁有若干個分布在不同區域的商品倉庫。當業務擴展的時候,公司將添加新的倉庫。每個倉庫負責為10個銷售點供貨,其中每個銷售點為3000個客戶提供服務,每個客戶提交的訂單中,平均每個訂單有10項產品,所有訂單中約1%的產品在其直接所屬的倉庫中沒有存貨,必須由其他區域的倉庫來供貨。同時,每個倉庫都要維護公司銷售的100000種商品的庫存記錄。
TPC-C測評系統資料庫由9張表組成,它們之間的關系如下圖:
其中,表框里的數字表示該表將要存放多少條記錄,倉庫數W的調整在測試中能夠體現資料庫所能夠支持的數據規模的能力;表間的數據表示數據的父子關系之間兒子的個數,比如一個Warehouse要對應10個District等,另外,「+」號表示這種對應關系可能會更多。
③ TPCC值如何計算
計算原則: 以單台伺服器性能進行計算,即確保單台伺服器工作的時候可以滿足系統正常運行的需要;
假設每天有1萬人次來窗口辦理業務,每人次辦理一項業務。即以每日1萬筆前台交易為例進行綜合系數的推導:
1. 假設每月前台交易數(未來5年內的設計指標)為220,000 (有些業務在月初、月末的處理量比較高,按月統計可以平衡此項差異);
2. 每日前台交易數=220000/22=10,000 ,即每日 1萬筆;
3. 忙時處理能力:每日交易的80%在4個小時內完成,即10000*80%/4=2000(筆/小時)
4. 峰值處理能力:2000*2=4000(筆/小時),即峰值處理能力為每小時4000筆,或 67筆/分,假設業務人員同時在線為100人,即每人每分鍾處理0.7筆)
5. 假設每筆交易對應資料庫事務數=20,基準TPC指標值對應的比例=8,cpu保留30%的處理能力冗餘,計算值與公布值(最優值)的偏差經驗值為4 (這幾個參數估算的依據不足,更多的是經驗值)
則 tpmC值為:
tpmC= 67*20*8*4/(1-30%)= 61257
倒算出 綜合系數 = 61257/10000=6.1
即資料庫伺服器tpmC= 每日前台交易數 * 6.1 (實際計算值應不高於該值)
應用伺服器的 tpmC = 資料庫伺服器 tpmC *50% (一般)
應用伺服器的 tpmC = 資料庫伺服器 tpmC *70% (涉及大量計算的,如社保、稅
④ 求一份openGauss常用SQL示例 做個簡單的入門練手測試~
如下羅列了一些創建、增、刪、改、查相關,請參考(涉及的具體語法及參數自行查閱官方文檔):
--1.CREATE USER
--創建用戶jim,登錄密碼為xxxxxxxxx。
openGauss=# CREATE USER jim PASSWORD 'xxxxxxxxx';
--下面語句與上面的等價。
openGauss=# CREATE USER kim IDENTIFIED BY 'xxxxxxxxx';
--如果創建有「創建資料庫」許可權的用戶,則需要加CREATEDB關鍵字。
openGauss=# CREATE USER dim CREATEDB PASSWORD 'xxxxxxxxx';
--將用戶jim的登錄密碼由xxxxxxxxx修改為Abcd@123。
openGauss=# ALTER USER jim IDENTIFIED BY 'Abcd@123' REPLACE 'xxxxxxxxx';
--為用戶jim追加CREATEROLE許可權。
openGauss=# ALTER USER jim CREATEROLE;
--將enable_seqscan的值設置為on, 設置成功後,在下一會話中生效。
openGauss=# ALTER USER jim SET enable_seqscan TO on;
--重置jim的enable_seqscan參數。
openGauss=# ALTER USER jim RESET enable_seqscan;
--鎖定jim帳戶。
openGauss=# ALTER USER jim ACCOUNT LOCK;
--刪除用戶。
openGauss=# DROP USER kim CASCADE;
openGauss=# DROP USER jim CASCADE;
openGauss=# DROP USER dim CASCADE;
--2.創建和管理資料庫
--使用如下命令創建一個新的資料庫db_tpcc。
openGauss=# CREATE DATABASE db_tpcc;
註:
•資料庫名稱遵循SQL標識符的一般規則。當前角色自動成為此新資料庫的所有者。
•如果一個資料庫系統用於承載相互獨立的用戶和項目,建議把它們放在不同的資料庫里。
•如果項目或者用戶是相互關聯的,並且可以相互使用對方的資源,則應該把它們放在同一個資料庫里,但可以規劃在不同的模式中。模式只是一個純粹的邏輯結構,某個模式的訪問許可權由許可權系統模塊控制。
•創建資料庫時,若資料庫名稱長度超過63位元組,server端會對資料庫名稱進行截斷,保留前63個位元組,因此建議資料庫名稱長度不要超過63個位元組。
--查看資料庫
•使用\l元命令查看資料庫系統的資料庫列表。
openGauss=# \l
•使用如下命令通過系統表pg_database查詢資料庫列表。
openGauss=# SELECT datname FROM pg_database;
--修改資料庫
用戶可以使用如下命令修改資料庫屬性(比如:owner、名稱和默認的配置屬性)。
•使用以下命令為資料庫設置默認的模式搜索路徑。
openGauss=# ALTER DATABASE db_tpcc SET search_path TO pa_catalog,public;
--使用如下命令為資料庫重新命名。
openGauss=# ALTER DATABASE db_tpcc RENAME TO human_tpcds;
--刪除資料庫
用戶可以使用DROP DATABASE命令刪除資料庫。這個命令刪除了資料庫中的系統目錄,並且刪除了磁碟上帶有數據的資料庫目錄。用戶必須是資料庫的owner或者系統管理員才能刪除資料庫。當有人連接資料庫時,刪除操作會失敗。刪除資料庫時請先連接到其他的資料庫。
使用如下命令刪除資料庫:
openGauss=# DROP DATABASE human_tpcds;
--3.CREATE TABLE
--表是建立在資料庫中的,在不同的資料庫中可以存放相同的表。甚至可以通過使用模式在同一個資料庫中創建相同名稱的表。創建表前請先規劃存儲模型。
openGauss=# CREATE TABLE customer_t1
(
c_customer_sk integer,
c_customer_id char(5),
c_first_name char(6),
c_last_name char(8)
);
當結果顯示為如下信息,則表示創建成功。
CREATE TABLE
其中c_customer_sk 、c_customer_id、c_first_name和c_last_name是表的欄位名,integer、char(5)、char(6)和char(8)分別是這四欄位名稱的類型。
--4.向表中插入數據
--向表中插入數據前,意味著表已創建成功。
向表customer_t1中插入一行:
數據值是按照這些欄位在表中出現的順序列出的,並且用逗號分隔。通常數據值是文本(常量),但也允許使用標量表達式。
openGauss=# INSERT INTO customer_t1(c_customer_sk, c_customer_id, c_first_name) VALUES (3769, 'hello', 'Grace');
如果用戶已經知道表中欄位的順序,也可無需列出表中的欄位。例如以下命令與上面的命令效果相同。
openGauss=# INSERT INTO customer_t1 VALUES (3769, 'hello', 'Grace');
如果用戶不知道所有欄位的數值,可以忽略其中的一些。沒有數值的欄位將被填充為欄位的預設值。例如:
openGauss=# INSERT INTO customer_t1 (c_customer_sk, c_first_name) VALUES (3769, 'Grace');
openGauss=# INSERT INTO customer_t1 VALUES (3769, 'hello');
用戶也可以對獨立的欄位或者整個行明確預設值:
openGauss=# INSERT INTO customer_t1 (c_customer_sk, c_customer_id, c_first_name) VALUES (3769, 'hello', DEFAULT);
openGauss=# INSERT INTO customer_t1 DEFAULT VALUES;
如果需要在表中插入多行,請使用以下命令:
openGauss=# INSERT INTO customer_t1 (c_customer_sk, c_customer_id, c_first_name) VALUES
(6885, 'maps', 'Joes'),
(4321, 'tpcds', 'Lily'),
(9527, 'world', 'James');
如果需要向表中插入多條數據,除此命令外,也可以多次執行插入一行數據命令實現。但是建議使用此命令可以提升效率。
如果從指定表插入數據到當前表,例如在資料庫中創建了一個表customer_t1的備份表customer_t2,現在需要將表customer_t1中的數據插入到表customer_t2中,則可以執行如下命令。
openGauss=# CREATE TABLE customer_t2
(
c_customer_sk integer,
c_customer_id char(5),
c_first_name char(6),
c_last_name char(8)
);
openGauss=# INSERT INTO customer_t2 SELECT * FROM customer_t1;
從指定表插入數據到當前表時,若指定表與當前表對應的欄位數據類型之間不存在隱式轉換,則這兩種數據類型必須相同。
刪除備份表
openGauss=# DROP TABLE customer_t2 CASCADE;
在刪除表的時候,若當前需刪除的表與其他表有依賴關系,需先刪除關聯的表,然後再刪除當前表。
--5.更新表中數據
修改已經存儲在資料庫中數據的行為叫做更新。用戶可以更新單獨一行,所有行或者指定的部分行。還可以獨立更新每個欄位,而其他欄位則不受影響。
使用UPDATE命令更新現有行,需要提供以下三種信息:
•表的名稱和要更新的欄位名
•欄位的新值
•要更新哪些行
SQL通常不會為數據行提供唯一標識,因此無法直接聲明需要更新哪一行。但是可以通過聲明一個被更新的行必須滿足的條件。只有在表裡存在主鍵的時候,才可以通過主鍵指定一個獨立的行。
建立表和插入數據的步驟請參考創建表和向表中插入數據。
需要將表customer_t1中c_customer_sk為9527的地域重新定義為9876:
openGauss=# UPDATE customer_t1 SET c_customer_sk = 9876 WHERE c_customer_sk = 9527;
這里的表名稱也可以使用模式名修飾,否則會從默認的模式路徑找到這個表。SET後面緊跟欄位和新的欄位值。新的欄位值不僅可以是常量,也可以是變數表達式。
比如,把所有c_customer_sk的值增加100:
openGauss=# UPDATE customer_t1 SET c_customer_sk = c_customer_sk + 100;
在這里省略了WHERE子句,表示表中的所有行都要被更新。如果出現了WHERE子句,那麼只有匹配其條件的行才會被更新。
在SET子句中的等號是一個賦值,而在WHERE子句中的等號是比較。WHERE條件不一定是相等測試,許多其他的操作符也可以使用。
用戶可以在一個UPDATE命令中更新更多的欄位,方法是在SET子句中列出更多賦值,比如:
openGauss=# UPDATE customer_t1 SET c_customer_id = 'Admin', c_first_name = 'Local' WHERE c_customer_sk = 4421;
批量更新或刪除數據後,會在數據文件中產生大量的刪除標記,查詢過程中標記刪除的數據也是需要掃描的。故多次批量更新/刪除後,標記刪除的數據量過大會嚴重影響查詢的性能。建議在批量更新/刪除業務會反復執行的場景下,定期執行VACUUM FULL以保持查詢性能。
--6.查看數據
使用系統表pg_tables查詢資料庫所有表的信息。
openGauss=# SELECT * FROM pg_tables;
使用gsql的\d+命令查詢表的屬性。
openGauss=# \d+ customer_t1;
執行如下命令查詢表customer_t1的數據量。
openGauss=# SELECT count(*) FROM customer_t1;
執行如下命令查詢表customer_t1的所有數據。
openGauss=# SELECT * FROM customer_t1;
執行如下命令只查詢欄位c_customer_sk的數據。
openGauss=# SELECT c_customer_sk FROM customer_t1;
執行如下命令過濾欄位c_customer_sk的重復數據。
openGauss=# SELECT DISTINCT( c_customer_sk ) FROM customer_t1;
執行如下命令查詢欄位c_customer_sk為3869的所有數據。
openGauss=# SELECT * FROM customer_t1 WHERE c_customer_sk = 3869;
執行如下命令按照欄位c_customer_sk進行排序。
openGauss=# SELECT * FROM customer_t1 ORDER BY c_customer_sk;
--7.刪除表中數據
在使用表的過程中,可能會需要刪除已過期的數據,刪除數據必須從表中整行的刪除。
SQL不能直接訪問獨立的行,只能通過聲明被刪除行匹配的條件進行。如果表中有一個主鍵,用戶可以指定準確的行。用戶可以刪除匹配條件的一組行或者一次刪除表中的所有行。
使用DELETE命令刪除行,如果刪除表customer_t1中所有c_customer_sk為3869的記錄:
openGauss=# DELETE FROM customer_t1 WHERE c_customer_sk = 3869;
如果執行如下命令之一,會刪除表中所有的行。
openGauss=# DELETE FROM customer_t1;
或
openGauss=# TRUNCATE TABLE customer_t1;
全表刪除的場景下,建議使用truncate,不建議使用delete。
刪除創建的表:
openGauss=# DROP TABLE customer_t1;
⑤ tpc-c是什麼
TPC-C學習筆記
摘錄:本文章來自:http://blog.csdn.net/Ruluo/archive/2005/10/21/510822.aspx
TPC-C學習筆記
2�TPCC基準測試
TPCC值被廣泛用於衡量C/S環境下,由伺服器和客戶端構築的整體系統的性能,它由事物處理性能委員會(TPC,Transaction Processing Corp)制定,TPC為非贏利性國際組織。
TPCC值可以反映出系統的性能價格比。TPCC測試系統每分鍾處理的任務數,單位為tpm,(transactions per minute)。系統的總體價格(單位為美元)除以TPCC值,就可以衡量出系統的性價比,系統的性價比值越小,系統的性價比越好。
需要注意的是,TPC-C值描述的是C/S整體系統的性能,它與系統的伺服器和客戶機的性能都有關系,也就是說,同樣的伺服器配置不同的客戶端將會影響TPCC值,任何廠商和測試者都可以根據TPC提供的測試規范構造出自己最優的系統,當然測試的結果要經過TPC審核。
http://article.pchome.net/00/03/97/43/
---------------------------------------------------------------------------------------------------------------
性能測試指標介紹
TPC-C
作為一家非盈利性機構,事務處理性能委員會(TPC)負責定義諸如TPC-C、TPC-H和TPC-W基準測試之類的事務處理與資料庫性能基準測試,並依據這些基準測試項目發布客觀性能數據。TPC基準測試採用極為嚴格的運行環境,並且必須在獨立審計機構監督下進行。委員會成員包括大多數主要資料庫產品廠商以及伺服器硬體系統供應商。
相關企業參與TPC基準測試以期在規定運行環境中獲得客觀性能驗證,並通過應用測試過程中所使用的技術開發出更加強健且更具伸縮性的軟體產品及硬體設備。
TPC-C是一種旨在衡量聯機事務處理(OLTP)系統性能與可伸縮性的行業標准基準測試項目。這種基準測試項目將對包括查詢、更新及隊列式小批量事務在內的廣泛資料庫功能進行測試。許多IT專業人員將TPC-C視為衡量「真實」OLTP系統性能的有效指示器。
TPC-C基準測試針對一種模擬訂單錄入與銷售環境測量每分鍾商業事務(tpmC)吞吐量。特別值得一提的是,它將專門測量系統在同時執行其它四種事務類型(如支付、訂單狀態更新、交付及證券級變更)時每分鍾所生成的新增訂單事務數量。獨立審計機構將負責對基準測試結果進行公證,同時,TPC將出據一份全面徹底的測試報告。這份測試報告可以從TPC Web站點(http://www.tpc.org)上獲得。
tpmC定義: TPC-C的吞吐量,按有效TPC-C配置期間每分鍾處理的平均交易次數測量,至少要運行12分鍾。
1.TPC-C規范概要
TPC-C是專門針對聯機交易處理系統(OLTP系統)的,一般情況下我們也把這類系統稱為業務處理系統。
TPC-C測試規范中模擬了一個比較復雜並具有代表意義的OLTP應用環境:假設有一個大型商品批發商,它擁有若干個分布在不同區域的商品庫;每個倉庫負責為10個銷售點供貨;每個銷售點為3000個客戶提供服務;每個客戶平均一個訂單有10項產品;所有訂單中約1%的產品在其直接所屬的倉庫中沒有存貨,需要由其他區域的倉庫來供貨。
該系統需要處理的交易為以下幾種:
New-Order:客戶輸入一筆新的訂貨交易;
Payment:更新客戶賬戶余額以反映其支付狀況;
Delivery:發貨(模擬批處理交易);
Order-Status:查詢客戶最近交易的狀態;
Stock-Level:查詢倉庫庫存狀況,以便能夠及時補貨。
對於前四種類型的交易,要求響應時間在5秒以內;對於庫存狀況查詢交易,要求響應時間在20秒以內。
邏輯結構圖:
流程圖:
2.評測指標
TPC-C測試規范經過兩年的研製,於1992年7月發布。幾乎所有在OLTP市場提供軟硬體平台的廠商都發布了相應的TPC-C測試結果,隨著計算機技術的不斷發展,這些測試結果也在不斷刷新。
TPC-C的測試結果主要有兩個指標:
● 流量指標(Throughput,簡稱tpmC)
按照TPC的定義,流量指標描述了系統在執行Payment、Order-status、Delivery、Stock-Level這四種交易的同時,每分鍾可以處理多少個New-Order交易。所有交易的響應時間必須滿足TPC-C測試規范的要求。
流量指標值越大越好!
● 性價比(Price/Performance,簡稱Price/tpmC)
即測試系統價格(指在美國的報價)與流量指標的比值。
性價比越小越好!
http://www-900.ibm.com/cn/procts/servers/pseries/tech/tpcc.shtml
---------------------------------------------------------------------------------------------------------------
[Oracle] How to Use Open Source Tools to Implement Your Own TPC-C
作者:Fenng
日期:Mar 14 2004 (v0.13)
出處:http://www.dbanotes.net
版本:0.93
--------------------------------------------------------------------------------
本文簡介
介紹如何利用開源工具實現Oracle資料庫環境中的TPC-C.對DBA、開發人員、BI實施者有一定的參考價值.
引言描述
設想一下這樣一種情況:
您正在負責公司的一個OLTP類型的資料庫項目,面臨資料庫伺服器選型的問題:如何選擇硬體才能滿足產品環境的業務要求? 這個事情是「拍腦袋」 能決定的嗎?
不可否認,硬體選型是一門藝術,選擇合適的硬體,能給公司節省大筆的費用,選擇不能滿足業務需求的伺服器產品,不但花了冤枉錢,還會對將來的業務產生影響。
可能大家首先會想到參考伺服器的TPC-C的信息。提到TPC-C,可能很多人對此都感到既熟悉又陌生,因為經常聽人說起,但是具體的問下去,能說清楚的又沒有多少人,而且,從大家口中得到的還不盡相同。那麼什麼是TPC/TPC-C這些都代表什麼意思呢?
先說一下TPC-C,TPC-C是聯機事務處理(on-line transaction processing , OLTP)的基準程序。TPC-C模擬一個批發商的貨物管理環境。TPC-C使用三種性能和價格度量,其中性能由TPC-C吞吐率衡量,單位是tpmC。tpm是transactions per minute的簡稱;C指TPC中的C基準程序。它的定義是每分鍾內系統處理的新訂單個數。
了解了這些內容,您可能會想:我們公司的PC伺服器完全是自己攢出來的,如何進行TPC-C的衡量的?也去參考TPC官方站點上的信息?不要忘了,TPC.org 上公布的測試結果都是各大廠商根據自己的系統進行了充分優化之後的出來的結果。打個比方,TPC公布的數值就好比嶄新的法拉利跑車經過專業技師們的精心檢查保養,然後在專用跑道上跑出來的速度值,而我們的情況可能是法拉利(甚至是夏利)要在鄉村土路上行駛,可比性大打折扣。
有的朋友會想:那我們可以根據自己的情況,拿一個秒錶在「鄉村土路」上測試一下看看呀。這樣的意義也是顯而易見的,對我們的實際的環境不是更具有參考價值?不錯,這也正是本文的目的:讓我們利用開源(Open Source)工具來實現自己的針對Oracle資料庫的TPC-C。
Hammerora—the Open Source Oracle Load Test Tool
首先介紹一下Hammerora。從創作者對這個工具的標題描述可以看出,Hammerora是一款Oracle資料庫負載測試工具。該工具可以在Oracle 8i、9i和10g等版本上使用。當前可以用在Linux/Unix和Windows上。初步實現了跨平台。Hammerora 完全用TCL/TK寫就,以GPL版權形式發布。
作者是Steve Shaw。該項目的主頁在:http://sourceforge.net/projects/hammerora/ 。
Hammerora的設計原理是解析Oracle的Trace文件,並把它們轉化為Oratcl程序,然後在Oracle資料庫中用多個用戶並發的對用戶的事務進行「回放」。我們知道,Oracle的Trace文件能夠翔實的記錄用戶對資料庫的操作。這樣Hammerora能夠保證對用戶環境的真實模擬。
Hammerora最初是用以學習的目的:期望是模擬資料庫的一定數量的用戶。這樣一個小的基於家庭的學習開發系統就能夠比較接近產品環境。這個工具已經成長為一個Oracle資料庫做壓力測試--從小的資料庫到大的基於RAC的集群。
TCL語言已經用來提供高性能的和Oracle資料庫的OCI集成,而無需重新編譯生成的程序。每個生成的程序具有嚴格的TCL/Oratcl兼容性,並且可以在Hammerora的命令行Shell下運行。TCL的強大功能和靈活性意味著潛在的功能是無窮盡的。TCL線程包用來實現對Oracle資料庫的多個並發連接。
Hammerora包含Oracle存儲過程和TCL驅動腳本用來運行TPC-C基準程序。但是,我們先要構建一個同TPC-C規范相符的資料庫。這樣,我們需要用到Orabm。
Orabm
Orabm是Geoff Ingram (High-Performance Oracle: Proven Methods for Achieving Optimum Performance and Availability一書的作者)構建的一個程序包,包含了一套SQL腳本和幾個命令行程序。Orabm數據裝載程序(Orabmload)構建了一組遵從TPC-C標準的數據用以測試。Orabm的程序包和源代碼可以從它的主頁面( http://www.linxcel.co.uk/orabm/) 得到。
Orabm的運行機制
Orabm的運行機制在Geoff Ingram有明確的說明,這里翻譯如下:Orabm通過在每個用戶指定的並發資料庫會話(session) 中運行用戶執行數量的資料庫事務來進行工作.事務通過ORABM模式下的ORABM_SERVERSIDE_STRESS存儲過程運行。對每個並發會話來說,ORABM_SERVERSIDE_STRESS運行在orabm命令行下指定的事務數,並返回該會話在采樣間隔完成時的TPS值.要確保所有並發會話都是在采樣間隔期間處理事務,TPS值僅包括事務的中間的80%,也即:初始的10%和最後的 10%將忽略掉。
更詳細信息可以參考http://www.linxcel.co.uk/orabm/ 的內容.
安裝步驟
1) 安裝Oracle OCI 庫
對Oracle 9i 來說,如果沒有安裝該組件的話,可能要重新運行runInstall,在Oracle 9i Client procts樹中選擇"Oracle Call Interfaces" .
對Oracle 10g來說,Oracle 10 OCI 庫應該是默認安裝的.
2) 安裝TCL
cd /usr/local/src/tcl8.4.5/unix
rm -f config.cache
./configure --enable-threads --enable-shared
make clean
make
make install
3 安裝TK
cd /usr/local/src/tk8.4.5/unix
rm -f config.cache
./configure --with-tcl=../../tcl8.4.5/unix --enable-threads --enable-shared
make clean
make
make install
4 安裝TCL Threads
cd /usr/local/src/thread2.5.2/unix
rm -f config.cache
sh ../configure --enable-threads --enable-shared
make clean
make
make install
5 安裝Oratcl
對10g來說,要編輯配置文件,在1728 行附近, FOUND_ORACLE=0 那一行的下面添加如下部分內容:
echo "checking for Oracle 10.0 style toplevel (libclient10.a)" 1> &6
echo "configure:1730: checking for Oracle 10 style toplevel(libclient10.a)"> &5
for f in $oracle_directory $oratest1 $oratest2 $oratest3 \
$oracle4 /opt/oracle /u/oracle /usr/oracle /usr/local/oracle ; do
echo "$ac_t""looking for lib/libclient10.a in $f" 1>&6
if test -r "$f/lib/libclient10.a" ; then
ORA="$f/lib"
ORACLE_HOME=$f
echo "$ac_t""setting ORA to $ORA" 1>&6
testver=10
ORA_MAJOR_VERSION=10
ORA_MINOR_VERSION=0
FOUND_ORACLE=1
break
fi
done
export ORACLE_HOME=your_oracle_home_directory
cd /usr/local/src/oratcl-4-1-branch/unix
rm -f config.cache
sh ../configure --with-tcl=../../tcl8.4.5/unix \
--with-oracle-directory=$ORACLE_HOME --with-oracle-version=9 ( or 10 or 8! ) \
--enable-threads --enable-shared
vi Makefile - 把所有的 -rpath 改做 -Wl,-rpath,
make clean
make
make install
sqlplus orabm/orabm @delivery_sp.sql
sqlplus orabm/orabm @new_order_sp.sql
sqlplus orabm/orabm @ostat_sp.sql
sqlplus orabm/orabm @payment_sp.sql
sqlplus orabm/orabm @slev_sp.sql
步驟 操作 命令
1 創建 ORABM用戶(用TOOLS做默認表空間,
TEMP 表空間為臨時表空間) sqlplus system/pwd @orabm_user
2 創建表 sqlplus system/pwd @orabm_tab
3 裝載數據 $orabmload Warehouses 1
4 創建索引 sqlplus system/pwd @orabm_ind
5 分析表和索引 sqlplus system/pwd @orabm_analyze
6 創建壓力測試PL/SQL 過程 sqlplus system/pwd @orabm_serverside_stress
7 把表和索引數據緩沖到SGA sqlplus system/pwd @orabm_cache
把tpc-c.tcl腳本載入Hammerora中(要查看TCL文件注意把過濾正確的文件擴展名:不是*.trc 而是*.tcl ),在該tpc-c.tcl中查找connect字元串,調整為你的資料庫用戶連接信息。並調整虛擬用戶信息。
測試運行
運行Hammerora,創建需要的用戶數, 來模擬TPC-C 基準程序(注意調整好執行Hammerora程序的環境變數,最好直接用Oracle用戶來執行).
http://www.dbanotes.net/Oracle/Use_OpenSourceTool_implement_YourOwn_TPC-C.htm
TPC基準程序及tpmc值
—兼談在使用性能度量時如何避免誤區
今天的用戶在選用平台時面對的是一個繽紛繁雜的世界。用戶希望有一種度量標准,能夠量化計算機系統的性能,以此作為選型的依據。作者曾在美國從事過數年計算機性能評價工作,深深體會到,計算機的性能很難用一兩種度量來 評價,而且,任何度量都有其優缺點,尤其是當使用者對性能度量了解不深時,很容易被引入一些誤區,甚至推演出錯誤的結論。本文以TPC基準程序為例,給出一 些實際建議,以幫助用戶避免進入這些誤區。
一、什麼是TPC和tpmC?
tpmC值在國內外被廣 泛用於衡量計算機系統的事務處理能力。但究竟什麼是tpmC值呢?作者曾向一些 用戶、推銷人員乃至某些國外大公司的技術人員問過這個問題,但回答的精確度 與tpmC值的流行程度遠非相稱。tpmC這一度量也常被誤寫為TPM或TPMC。
1、TPC
TPC(Transaction Processing Performance Council,事務處理性能委員會)是由數10家會員公司創建的非盈利組織,總部設在美國。該組織對全世界開放,但迄今為止,絕大多數會員都是美、 日、西歐的大公司。TPC的成員主要是計算機軟硬體廠家,而非計算機用戶,它的功 能是制定商務應用基準程序(Benchmark)的標准規范、性能和價格度量,並管理測 試結果的發布。
TPC的出版物是開放 的,可以通過網路獲取(http://www.tpc.org)。TPC不給出基準程序的代碼,而只 給出基準程序的標准規范(Standard Specification)。任何廠家或其它測試者都可以根據規范,最優地構造出自己的系統(測試平台和測試程序)。為保證測試結果的客觀性,被測試者(通常是廠家)必須提交給TPC一套完整的報告(Full Disclosure Report),包括被測系統的詳細配置、分類價格和包含五年維護費用在內的總價 格。該報告必須由TPC授權的審核員核實(TPC本身並不做審計)。現在全球只有幾個審核員,全部在美國。
2、tpmC
TPC已經推出了四套基準程序,被稱為TPC-A、TPC-B、TPC-C和TPC-D。其中A和B已經過時,不再使用了。TPC-C是在線事務處理(OLTP)的基準程序,TPC-D是決策支持(Decision Support) 的基準程序。TPC即將推TPC-E,作為大型企業(Enterprise)信息服務的基準程序。
TPC-C模擬一個批發 商的貨物管理環境。該批發公司有N個倉庫,每個倉庫供應10個地區,其中每個地 區為3000名顧客服務。在每個倉庫中有10個終端,每一個終端用於一個地區。在運 行時,10×N個終端操作員向公司的資料庫發出5類請求。由於一個倉庫中不可能 存儲公司所有的貨物,有一些請求必須發往其它倉庫,因此,資料庫在邏輯上是 分布的。N是一個可變參數,測試者可以隨意改變N,以獲得最佳測試效果。
TPC-C使用三種性能 和價格度量,其中性能由TPC-C吞吐率衡量,單位是tpmC。tpm是transactions per minute的簡稱;C指TPC中的C基準程序。它的定義是每分鍾內系統處理的新訂單個數。要注意的是,在處理新訂單的同時,系統還要按表1的要求處理其它4類事務 請求。從表1可以看出,新訂單請求不可能超出全部事務請求的45%,因此,當一個 系統的性能為1000tpmC時,它每分鍾實際處理的請求數是2000多個。價格是指系 統的總價格,單位是美元,而價格性能比則定義為總價格÷性能,單位是$/tpmC。
二、如何衡量計算機系統的性能和價格
在系統選型時,我們一定不要忘記我們是為特定用戶環境中的特定應用選擇系統。切忌為了「與國際接 軌」而盲目套用「國際通用」的東西。在性能評價領域,越是通用的度量常常越是不準確的。據我所知,美國的一些大用戶從不相信任何「國際通用」的度量,而是花相當精力,比如預算的5%,使用自己的應用來測試系統,決定選型。在使用任何一種性能和價格度量時,一定要弄明白該度量的定義,以及它是在什麼系統配置和運行環境下得到的,如何解釋它的意義等。下面我們由好到差討論三種方式。
1、在真實環境中運行 實際應用
最理想的方式是搞一個試點,要求製造商或系統集成商配合將系統(含平台、軟體和操作流程)在一個 實際用戶點真正試運行一段時間。這樣,用戶不僅能看到實際性能,也能觀察到系統是否穩定可靠、使用是否方便、服務是否周到、配置是否足夠、全部價格是否合理。如果一個部門需要購買一批同類的系統,這種方式應列為首選,因為它不僅最精確、穩妥,也常常最有效率,用戶還可先租一套系統作為試點。用這種方式得到的度量值常常具有很明確和實際的含義。
2、使用用戶定義的基準程序
如果由於某種原因第一種方式不可行,用戶可以定義一組含有自己實際應用環境特徵的應用基準程序。 我舉兩個例子:近年來,由於R/3軟體是應用層軟體,SAP公司的基準程序獲得了越來越多國外企業的認可;中國稅務總局最近也開發了自己的基準程序,以幫助稅務系統進行計算機選型。這種方式在中國尤其重要,因為中國的信息系統有其特殊性。
3、使用通用基準程序
如果第1種和第2種方式都不行,則使用如TPC-C之類的通用基準程序,這是不得已的一種近似方法。因 此,tpmC值只能用作參考。我們應當注意以下幾點:
(1)實際應用是否與基準程序相符
絕大多數基準程序都是在美國制訂的,而中國的企事業單位與美國的運作方式常常不一樣(恐怕也不應該或不可能一樣)。在使用TPC-C時,我們應該清楚地知道:我的應用是否符合批發商模式?事務請求是否與表1近似?對響應時間的要求是否滿足表1?如果都不是,則tpmC值的參考價值就不太大了。
(2)TPC度量的解釋
TPC基準程序是用來測系統而不是測主機的,廠家肯定要充分優化他們的被測系統。此處的「系統」包括主機、外設(如硬碟或RAID)、主機端操作系統、資料庫軟體、客戶端計算機及其 操作系統、資料庫軟體和網路連接等。在很多廠家的TPC測試系統中,主機的價格只是系統總價格的1/4或更小,而硬碟的價格有可能佔到總價格的1/3以上,因為TPC-C要求被測系統必須保存180天的事務記錄。如果同樣的主機被用到用戶的環境中,廠家報的tpmC值就意義不大,因為用戶的實際系統與廠家原來用於TPC測試的系統大不一樣。當同樣的主機用在不同的系統中時,tpmC值可能有相當大的變化,現在很多用戶還沒有意識到這一點。
我舉一個例子。假設用 戶希望購買一批同類系統,每一系統至少需要1GB的內存和50GB的硬碟。廠家A、B、C 各報了三個價格相當的系統,tpmC值分別為3000、2800、2600。用戶是否應該選廠 家A的產品呢?答案是:不一定。廠家用於測試tpmC值的系統與實際提供給用戶的系統配置大不一樣。tpmC最低的廠家C提供給用戶的系統反而有可能性能最好,不 論是以實際系統的tpmC值還是以用戶的實際應用性能來衡量。
(3)TPC測試的成本
TPC-C和TPC-D都是很復雜的基準程序,做一個嚴格的測試是很消耗資源的,廠家當然不會說出他們花費了多少錢和時間。但據國外知情人士透露,一個廠家做第一個TPC-C測試需 要幾十萬到上百萬美元的資金和半年左右的時間投入。因此,很多TPC的度量值都 是估計的。由於計算機系統換代頻繁,如果用戶一定要用通過審核的度量值,就必 須多等待半年時間,因此而不能用最先進的系統。中國的廠家通過審核的時間則 更長。
綜上所述,我們對中國 用戶(尤其是大用戶)在計算機系統的選型方面有如下建議:
最好建立一個真實的試點,因為實際應用環境是檢驗計算機系統的最好標准。
中國的行業應該建立符合自己實際應用的基準程序和測試標准。中國稅務總局的做法值得提倡。國家有關部門應該建立獨立的測試中心,制定跨行業、符合中國企事業運作模式的性能測試標准。
「國際通用」的度量可以作為參考值,而不應作為必要條件。尤其是一定要弄清這些流行度量有什麼含義,是在什麼樣的系統環境中測得的,以及基準程序是否符合企業真實的業務流程和運作模式。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=510822
⑥ 資料庫性能優化基準測試的度量指標有哪些
當前業界常見的伺服器性能指標有:
TPC-C
TPC-E
TPC-H
SPECjbb2005
SPECjEnterprise2010
SPECint2006 及 SPECint_rate_2006
SPECfp2006 及 SPECfp_rate_2006
SAP SD 2-Tier
LINPACK
RPE2
一、TPC (Transaction Processing Performance Council) 即聯機交易處理性能協會, 成立於1988年的非盈利組織,各主要軟硬體供應商均參與,成立目標: 為業界提供可信的資料庫及交易處理基準測試結果,當前發 布主要基準測試為:
TPC-C : 資料庫在線查詢(OLTP)交易性能
TPC-E : 資料庫在線查詢(OLTP)交易性能
TPC-H : 商業智能 / 數據倉庫 / 在線分析(OLAP)交易性能
1.TPC-C測試內容:資料庫事務處理測試, 模擬一個批發商的訂單管理系統。實際衡量伺服器及資料庫軟體處理在線查詢交易處理(OLTP)的性能表現. 正規 TPC-C 測試結果發布必須提供 tpmC值, 即每分鍾完成多少筆 TPC-C 資料庫交易 (TPC-C Transaction Per Minute), 同時要提供性價比$/tpmC。如果把 TPC-C 測試結果寫成為 tpm, TPM, TPMC, TPCC 均不屬正規。
2.TPC-E測試內容:資料庫事務處理測試,模擬一個證券交易系統。與TPC-C一樣,實際衡量伺服器及資料庫軟體處理在線查詢交易處理(OLTP)的性能表現。正規TPC-E測試結果必須提供tpsE值,即每秒鍾完成多少筆TPC-E資料庫交易(transaction per second),同時提供$/tpsE。測試結果寫成其他形式均不屬正規。
對比:TPC-E測試較TPC-C測試,在測試模型搭建上增加了應用伺服器層,同時增加了資料庫結構的復雜性,測試成本相對降低。截止目前,TPC-E的測試結果僅公布有50種左右,且測試環境均為PC伺服器和windows操作系統,並無power伺服器的測試結果。除此之外,TPC官方組織並未聲明TPC-E取代TPC-C,所以,說TPC-E取代TPC-C並沒有根據。
⑦ TPCC的基本概念
TPC(Transaction Processing Performance Council,事務處理性能委員會)是由數十家會員公司創建的非盈利組織,總部設在美國。TPC的成員主要是計算機軟硬體廠家,而非計算機用戶,其功能是制定商務應用基準程序的標准規范、性能和價格度量,並管理測試結果的發布。
TPC不給出基準程序的代碼,而只給出基準程序的標准規范。任何廠家或其他測試者都可以根據規范,最優地構造出自己的測試系統(測試平台和測試程序)。為保證測試結果的完整性,被測試者(通常是廠家)必須提交給TPC一套完整的報告(Full Disclosure Report),包括被測系統的詳細配置、分類價格和包含5年維護費用在內的總價格。該報告必須由TPC授權的審核員核實(TPC本身並不做審計)。 TPC在全球只有不到10名審核員,全部在美國。
TPC-C使用三種性能和價格度量,其中性能由tpmC(transactions per minute,tpm)衡量,Cpm)衡量,C指TPC中的C基準程序。它的定義是每分鍾內系統處理的新訂單個數。TPC-C還經常以系統性能價格比的方式體現,單位是$/tpmC,即以系統的總價格(單位是美元)/tpmC數值得出。 這類系統具有比較鮮明的特點,這些特點主要表現如下:
1、多種事務處理並發執行,充分體現了事務處理的復雜性;
2、在線與離線的事務執行模式;
3、多個在線會話終端;
4、適中的系統運行時間和應用程序運行時間;
5、大量的磁碟I/O數據流;
6、強調事務的完整性要求(ACID);
7、對於非一致的資料庫分布,使用主鍵和從鍵進行訪問;
8、資料庫由許多大小不一、屬性多樣,而又相互關聯的數據表組成;
9、存在較多數據訪問和更新之間的資源爭奪。
⑧ 在TPCC網站上怎樣查TPCC值
計算原則: 以單台伺服器性能進行計算,即確保單台伺服器工作的時候可以滿足系統正常運行的需要;假設每天有1萬人次來窗口辦理業務,每人次辦理一項業務。即以每日1萬筆前台交易為例進行綜合系數的推導:1. 假設每月前台交易數(未來5年內的設計指標)為220,000 (有些業務在月初、月末的處理量比較高,按月統計可以平衡此項差異);2. 每日前台交易數=220000/22=10,000 ,即每日 1萬筆;3. 忙時處理能力:每日交易的80%在4個小時內完成,即10000*80%/4=2000(筆/小時)4. 峰值處理能力:2000*2=4000(筆/小時),即峰值處理能力為每小時4000筆,或 67筆/分,假設業務人員同時在線為100人,即每人每分鍾處理0.7筆)5. 假設每筆交易對應資料庫事務數=20,基準TPC指標值對應的比例=8,cpu保留30%的處理能力冗餘,計算值與公布值(最優值)的偏差經驗值為4 (這幾個參數估算的依據不足,更多的是經驗值)則 tpmC值為:tpmC= 67*20*8*4/(1-30%)= 61257倒算出 綜合系數 = 61257/10000=6.1即資料庫伺服器tpmC= 每日前台交易數 * 6.1 (實際計算值應不高於該值)應用伺服器的 tpmC = 資料庫伺服器 tpmC *50% (一般)應用伺服器的 tpmC = 資料庫伺服器 tpmC *70% (涉及大量計算的,如社保、稅
⑨ 一般的PCserver的TPCC值是多少4C32核的。
這要取決於你的具體應用和具體硬體2方面,下面案例公式供你參考:
參考案例:某項目計算實例
為了方便計算資料庫伺服器的造型,我們約定:
" 系統同時在線用戶數為1500人(U1);
" 平均每個用戶每分鍾發出2次業務請求(N1);
" 系統發出的業務請求中,更新、查詢、統計各佔1/3;
" 平均每次更新業務產生3個事務(T1);
" 平均每次查詢業務產生8個事務(T2);
" 平均每次統計業務產生13個事務(T3);
" 一天內忙時的處理量為平均值的5倍;
" 經驗系數為1.6;(實際工程經驗)
" 考慮伺服器保留30%的冗餘;
伺服器需要的處理能力為:
TPC-C=U1*N1*(T1+T2+T3)/3*3*經驗系數/冗餘系數
則應用伺服器的處理性能估算為:
TPC-C= 1500*2*(3+8+13)/3*5*1.6/0.7= 274,285 tpmC
另附某參考資料說:HP DL580 G7 4C32核2.26G 1TBDDR3 TPC-C=1807347Ktpmc。希望能幫到你,請點個採納啊,謝謝