《版權聲明:本文爲博主原創文章,未經博主允許不得轉載》
本次利用SPECCPU2006測試工具來進行Intel CPU Xeon E7-**** v4的測試以及調優,計劃在機器I840-G**測試。本次測試主要從硬件調優和操作系統調優兩個方面進行。經過最終的測試,SPECint_rate_base和SPECfp_rate_base結果均超過Intel的預期。其中調優過程尤爲重要,爲後續繼續的測試達下基礎。下面記錄中間的調優過程。
- SPECCPU2006簡介
- SPECCPU2006安裝和使用
- config文件以及運行腳本介紹
- 測試準備以及基準值測試
- 硬件調優過程
- OS調優過程
- 結果提交過程問題
- FAQ
- 自動化測試腳本
- Numa、memory interleaving、cgroup等相關內容學習
- 常用監控工具使用,最好寫成自動化腳本時稱log文件,可以用來觀察。
- top、sar、vmstat、oprofile、重拾pcp功能等
一、SPECCPU2006簡介
SPECCPU2006是SPEC組織(SPEC,Standard PerformanceEvaluation Corporation)推出的CPU評估軟件。SPECCPU2006包括了CINT2006(整型)和C FP2006(浮點)兩個子項目,前者用於測量和對比整數性能,而後者則用於測量和對比浮點性能。最終的批判指標(bench)主要有四個SPECCPUint_speed_2006、SPECCPUfp_speed_2006、SPECCPUint_rate2006、SPECCPUfp_rate2006。其中speed表示考慮的則是CPU的運行速度,即單個任務所需要的時間;rate表示吞吐率,即一定時間內完成的任務數量。作爲Intel最看重的數據是SPECCPUint_rate2006和SPECfp_rate2006,這兩個結果能夠真正表達CPU和主板搭配下的實際性能。
SPECCPU測試中,測試系統的CPU、內存和編譯器(SPEC CPU提供的是源代碼,並且允許測試用戶進行一定的編譯優化)都會影響最終的測試性能,而I/O(磁盤)、網絡、操作系統和圖形子系統對於SPECCPU2006的影響非常的小。
由上可見,影響最終結果的主要是:硬件(CPU、內存)、編譯器優化參數。但是,爲了進一步提高最終的結果,操作系統可以進行一些調優來進一步提高結果。
SPECCPU2006包括12個整型、17個浮點測試的bench。具體可以參見如下表
CIN2006包含12個benchmark,其中9個利用C程序完成、3個利用C++完成。具體如下表所示:
C | PERL Programming Language | |
C | Compression | |
C | C Compiler | |
C | Combinatorial Optimization | |
C | Artificial Intelligence: go | |
C | Search Gene Sequence | |
C | Artificial Intelligence: chess | |
C | Physics: Quantum Computing | |
C | Video Compression | |
C++ | Discrete Event Simulation | |
C++ | Path-finding Algorithms | |
C++ | XML Processing |
CFP2006包含17個benchmark,其中4個用C++,3個使用C,6個使用Fortran,4個混合使用C語言和Fortran語言。詳細如下表所示:
Fortran | Fluid Dynamics | |
Fortran | Quantum Chemistry | |
C | Physics: Quantum Chromodynamics | |
Fortran | Physics/CFD | |
C/Fortran | Biochemistry/Molecular Dynamics | |
C/Fortran | Physics/General Relativity | |
Fortran | Fluid Dynamics | |
C++ | Biology/Molecular Dynamics | |
C++ | Finite Element Analysis | |
C++ | Linear Programming, Optimization | |
C++ | Image Ray-tracing | |
C/Fortran | Structural Mechanics | |
Fortran | Computational Electromagnetics | |
Fortran | Quantum Chemistry | |
C | Fluid Dynamics | |
C/Fortran | Weather Prediction | |
C | Speech recognition |
二、SPECCPU2006安裝和使用
2.1安裝準備工作
安裝此工具必須要在一定的操作系統情況下,speccpu支持windows、linux。本文主要安裝國產操作系統NeoKylinV7.0Update2操作系統。同時,speccpu還需要一些額外的開發包及庫才能正常的使用,因此需要安裝一些額外的包。
由上介紹可知,SPECCPU2006給用戶的是源碼包,需要用戶進行編譯,因此需要安裝合適的編譯器進行編譯。由於測試的CPU大部分是intel的,因此本文主要介紹intel公司的編譯器icc、ifort的安裝和使用。
2.1.1 操作系統安裝
本次測試使用操作系統信息如下所示,使用NeoKylin V7Update2-b04
#cat /etc/.productinfo
[root@sky 桌面]# cat /etc/.productinfo
NeoKylin Linux Advanced Server
release V7Update2/(Potassium)-x86_64
b04.lic/20151230
[root@sky 桌面]# cat /etc/neokylin-release
NeoKylin Linux Advanced Server releaseV7Update2 (Potassium)
安裝過程
選擇最小化作爲一個基準,用來進行後續的比較而用,其中各種缺的包可以臨時安裝即可。不過spec安裝需要一些額外的static包,需要配置遠程的yum源才能正常使用。
本次安裝使用Lagency模式的最小化安裝,標準化分區、關閉kdump服務。示例圖像如下所示,選擇其中的minimor install,不選擇其他任何的額外包。
其中分區包括500MB的boot分區,4G的swap分區,500GB的根分區,且均採用xfs文件系統。
安裝的方式有多種,本次測試主要兩種:1.光盤安裝;2.利用BMC虛擬機掛載功能掛載iso鏡像文件進行遠程安裝。
硬件信息:
1.2TB raid0 兩塊硬盤;
2.4CPU 24cores/CPU
3.內存:64*16GB=8(內存板)*4(channel)*2(條)*16
2.1.2 安裝必須的軟件並關閉無用的服務
安裝必須安裝包
系統安裝完成後,則安裝必須的開發包或庫包。根據以往經驗,得到如下必須安裝包列表
glibc、glibc.i686、glibc-devel、glibc-devel.i686、glibc-static、glibc-static.i686、gcc、libgcc、 libgcc.i686、gcc-c++.x86_64、compat-gcc*.x86_64、gcc-objc++*.x86_64、libstdc++、libstdc++*.i686、libstdc++-devel、libstdc++-devel*.i686、nss-softokn-freebl、nss-softokn-freebl-devel、 nss-softokn-freebl*.i686、nss-softokn-freebl-devel*.i686、numactl lsb
系統中默認yum配置就可以正常使用,因此利用yum install腳本完成安裝,如下代碼所示:
#!/usr/bin/sh
packagelist={glibc glibc.i686 glibc-develglibc-devel.i686 glibc-static glibc-static.i686 gcc libgcc libgcc.i686gcc-c++.x86_64 compat-gcc*.x86_64 gcc-objc++*.x86_64 libstdc++ libstdc++*.i686libstdc++-devel libstdc++-devel*.i686 nss-softokn-freeblnss-softokn-freebl-devel nss-softokn-freebl*.i686nss-softokn-freebl-devel*.i686 numactl lsb}
for package in $packagelist
do
yuminstall -y $package
done
如果過程中有需要的其他安裝包,則可以利用yum進行安裝即可。
關閉額外服務
爲了減少系統額外的干擾,此次實驗需要關閉一些額外的服務。具體列表如下所示:
同時需要修改/etc/selinux/config文件,將selinux修改爲disabled模式。
#!/usr/bin/sh
#disable some service
systemctl disable auditd.service
systemctl disable libvirtd
systemctl disable firewalld
systemctl disable irqbalance
systemctl disable postfix
systemctl disable crond
此處利用“systemctl list-unit-files |grep enable >test”輸出到本地的一個文件,然後利用vim工具進行替換最終完成如上的腳本。
2.1.2安裝icc以及ifort編譯器
由上介紹可知,speccpu的安裝需要編譯器,因此安裝icc成爲必須的準備工作之一。
註冊一個賬戶,選擇免費使用的版本進行下載。兩種下載方式,一種將所有的離線文件都下載到本地;另外一種則是下載一個在線安裝的腳本進行在線安裝,可以只下載部分需要內容。parallel_studio_xe_2016_update2_online.sh
本文使用第一種方式,將整個離線包全部下載到本地。同時安裝時也可以使用兩種方法,一種是互動安裝,將需要輸入的選項輸入到終端,完成安裝。另外一種則是利用silent.cfg文件進行靜默安裝。
下載完成之後,安裝。
1)解壓到本地:
#tar xfparallel_studio_xe_2016_update2.tgz
安裝方式一:
#sh install.sh
首先,按下Enter,它首先會檢查系統必須條件。提示如下:
#Checking the prerequisites. It can takeseveral minutes. Please wait...
接着,檢查完成則會提示如下,此時按下q則繼續,不用看所有內容。
--More--[Press space to continue, 'q' toquit.]
然後會提示是否接受licence信息,提示如下所示,輸入accept則可以完成。
Do you agree to be bound by the terms andconditions of this license agreement?
Type 'accept' to continue or 'decline' togo back to the previous menu:
接着會提示激活軟件的方式,選擇試用或者稍後激活。一般爲第二項,輸入2。提示如下所示:
1. I want to activate my product using aserial number [default]
2. I want to evaluate Intel(R) ParallelStudio XE 2016 Update 2 Cluster Edition
for Linux* or activate later
3. I want to activate by using a licensefile, or by using Intel(R) Software
License Manager
此次檢查過程比較長,等候時間較長。完成後會提示是否參加促進intel軟件。一般可以選擇不參加2.
--------------------------------------------------------------------------------
1. Yes, I am willing to participate andimprove Intel software. (Recommended)
2. No, I don't want to participate in theIntel® Software Improvement Program at
this time.
完成後則會提示選擇安裝,此處尤爲重要,可以選擇安裝模塊,選擇2.Installation target,可以輸入安裝目錄;/opt/intel
This product can be installed on clusternodes.
--------------------------------------------------------------------------------
1. Finish configuring installation target[default]
2. Installation target [ Current system only ]
輸入Enter後則會提示接下來需要安裝的文件信息,部分如下所示:
Component(s) selected:
Intel(R) MPI Library 5.1 Update 3 763MB
Intel MPI Benchmarks
Intel MPI Library for applications running on Intel(R) 64Architecture
Intel MPI Library for applications running on Intel(R) ManyIntegrated
Core Architecture
Intel(R) Trace Analyzer and Collector 9.1 Update 2 424MB
Intel(R) Trace Analyzer for Intel(R) 64 Architecture
Intel(R) Trace Collector for Intel(R) 64 Architecture
Intel(R) Trace Collector for Intel(R) Many Integrated Core Architecture
Intel(R) Cluster Checker 3.1 Update 2 152MB
Cluster Checker common files
Cluster Checker Analyzer
Cluster Checker Collector
Cluster Checker Database
看完提示信息之後則是正式選擇安裝,尤爲重要的一點,選擇2.Customize installation,則可以選擇安裝哪部分軟件。
1. Start installation Now [default]
2. Customize installation
此處選擇安裝的架構,默認只有Intel(R) 64,但是speccpu中需要IA-32架構,因此需要在此處選擇IA-32。按下1再按下Enter則可以完成選擇。
Target Architecture(s) of yourapplications:
--------------------------------------------------------------------------------
1. [ ] IA-32
2. [x] Intel(R) 64
3. Finish architecture selection[default]
選完之後
Target Architecture(s) of yourapplications:
--------------------------------------------------------------------------------
1. [x] IA-32
2. [x] Intel(R) 64
3. Finish architecture selection[default]
此時完成選擇之後則可以選擇3完成架構選擇。並選擇開始安裝。根據提示則可以看到是否安裝完成。
Step 7 of 7 | Complete
--------------------------------------------------------------------------------
Thank you for installing and for usingIntel(R) Parallel Studio XE 2016 Update 2
Cluster Edition for Linux*.
由上述過程可見,比較複雜,因此,建議實際使用中使用silent.cfg來進行靜默安裝。
2)利用install.sh腳本進行安裝或者修改silent.cfg文件,利用如下方式進行靜默安裝:
#sh install.sh -s silent.cfg &
其中silent.cfg主要需要修改如下幾項:
PSET_INSTALL_DIR=/opt/intel (選擇安裝路徑)
COMPONENTS=ALL(選擇所有組件)
ACTIVATION_TYPE=trial_lic (試用)
ARCH_SELECTED=ALL(架構處選擇ALL安裝IA32和INTEL64)、
具體參考附件:silent.cfg
完成安裝後,需要配置環境變量;
#cat “source/opt/intel/bin/compilervars.sh intel64”>> ~/.bashrc
#source ~/.bashrc
#icc -v
結果顯示:icc version 16.0.2 (gcc version 4.8.5 compatibility)
如果結果沒有提示錯誤,則表示安裝完成。
2.2 SPECCPU安裝
在安裝好操作系統,配置好icc編譯器之後則可以正式安裝SPECCPU了。一般speccpu2006以iso形式存在。具體安裝方式如下所示
1)掛載cpu2006-1.2.iso
#mount -o loop cpu2006.iso /mnt
2)運行安裝腳步進行安裝
#sh install.sh
提示信息如下,輸入安裝目錄:/cpu2006
SPEC CPU2006 Installation
Top of the CPU2006 tree is '/mnt'
Enter the directory you wish to install to(e.g. /usr/cpu2006)
/cpu2006
根據系統的情況,最終選擇工具集:linux-suse10-amd64,提示信息如下:
Attempting to install the linux-suse10-amd64toolset...
很快則是解壓所有的bench最終看到如下提示則表示完成安裝:
Installation successful. Source the shrc or cshrc in
/cpu2006
to set up your environment for thebenchmark.
驗證是否安裝完成:
#source /cpu2006/shrc
#runspec –help
如果有選項的提示,則表示安裝完成。部分顯示結果如下:
[root@spec cpu2006]# runspec --help
Usage: /cpu2006/bin/runspec [options]
If a long option shows an argument asmandatory, then it is mandatory
for the equivalent short option also. Similarly for optional arguments.
Optional arguments are enclosed in [].
When using long arguments, the equals sign('=') is optional.
Option list (alphabetical order):
-aACTION Same as'--action ACTION'
--action=ACTION Set the action for runspec totake. ACTION is
one of: build, buildsetup, clean,clobber,
configpp,scrub, report, run, setup, trash,
validate
--nobuild Do not attempt to buildbinaries
-cFILE Same as '--config FILE'
-CUSERS[,USERS...] Same as'--copies USERS[,USERS...]
--check_version Check the suite version evenfor non-
reportableruns
最終,在操作系統正常安裝,必須軟件包安裝成功,icc編譯器成功安裝的情況下,完成了speccpu2006的安裝,接下來則可以正常的去使用了。runspec命令是跑測試的最重要工具。
三、config文件介紹
3.1 測試需要準備的工作
安裝完成speccpu2006後進入安裝目錄/cpu2006後可以看到其下主要有如下文件:
[root@spec cpu2006]# ls
Docs LICENSE MANIFEST README.txt SUMS.tools bin cshrc install.sh result shrc.bat uninstall.sh
Docs.txt LICENSE.txt README Revisions benchspec config install.bat redistributable_sources shrc tmp version.txt
文件 | 描述 |
Docs/Docs.txt | 文檔,包括各種userguide等信息十分有用 |
LICENCE/LICENCE.txt | 序列號信息 |
README/README.txt | speccpu簡介 |
SUMS.tools | 各種工具列表 |
Bin/ | 一些工具(runspec)所在目錄 |
Cshrc/shrc.bat/shrc | 設置環境變量腳本,linux下shrc |
Install.sh/uninstall.sh/install.bat | 安裝和卸載腳本 |
Benchspec/ | 存放bench的目錄十分重要,運行過程文件均在其中.包括測試所需數據、源碼、二進制包等 |
Version.txt | 版本信息 |
Result/ | 運行結果和日誌目錄 |
Config/ | config文件以及flag文件所在目錄 |
1)config文件
如上所述,進入config文件夾中會有一些示例配置文件,一個flags文件夾,其下包含一些示例xml文件作爲flag文件。config文件是運行過程中十分重要的文件,編譯參數、運行腳本、軟硬件描述等內容均在其中。Config文件更加詳細的信息請參考:《SPECCPUconfig詳解.odt》。其中詳細介紹了config文件包含五個部分,並介紹了每個部分如何進行書寫。
本文以實際使用過程中使用的例子來具體介紹config文件。這次測試使用的config文件是:cpu2006-1.2-ic16.0u2-lin64-ws-avx2-rate-20160328.cfg。根據名稱可以發現其爲cpu2006v1.2測試工具,使用的icc爲16.02,64位的操作系統,指令集爲avx2,測試對象爲rate,日期爲20160328。下面開始利用註釋來逐段解讀config文件。
如下爲config文件最開始的一段,爲一段註釋文件。
############################################################################
# This is a sample config file. It wastested with:
#
# Compiler name/version: IntelCompiler 16.0u2
#編譯器版本
# Operating system version: 64-Bit NeoKylin Advanced Linux V7Update2 #os系統
# Hardware: Intelprocessors supporting AVX2
#CPU指令集AVX2
#
############################################################################
# SPEC CPU2006 Intel Linux64 config file
# 20160328 Intel Compiler 16.0 forLinux64
############################################################################
接下來爲主要內容:
action = validate
#runspec參數,默認,編譯,運行,結果正確性檢查,報告生成
tune = base,peak
#測試範圍既包括基準測試也包括峯值測試,和runspec 加入 # --tune=all一樣,
接下來內容,關鍵爲一個日期定義和fail_build,如果修改爲0,則需要修改version日期,否則會出現報錯。
%define version 20160328
ext = cpu2006-1.2-ic16.0u2-lin64-ws-avx2-rate-%{version}
#可執行文件擴展名
#
# vvvvvvvvvvvv # do not change unless you read NOTE above
fail_build=1 # do not change unless you read NOTE above
# ^^^^^^^^^^^^ # do not change unless you read NOTE above
#
########################################################
#
重要內容,如下所示:
PATHSEP = /
#路徑
check_md5=1
#使用MD5散列來驗證可執行文件同配置文件匹配,如果不匹配,重新編譯
reportable=1
# 遵循報告規則,生成規範的報告文件
bench_post_setup=sync
#在每個benchmark的運行目錄配置完成後,都執行命令:sync將內存緩衝區內的數據寫入磁盤。
parallel_test=0
#設置並行進行test和train workload下benchmark二進制文件驗證正確性工作的數量
mean_anyway=1
#即使測試過程有invalid狀態也要計算結果值。
sysinfo_program = specperl$[top]/config/sysinfo.rev6914
#用specperl獲取軟硬件信息的腳本
flagsurl1=Intel-ic16.0-official-linux64.xml
#flag文件的文件名稱,默認目錄在/cpu2006下
%ifdef %{default-platform-flags}
#如果runpsec中定義了default-platform-flags參數則
flagsurl2=Default-Platform-Flags.xml
#利用另外一個flag文件Default-Platform-Flags.xml
%endif
# Set some environment variables
preENV_LD_LIBRARY_PATH =$[top]/libs/32:$[top]/libs/64:$[top]/sh
#庫文件目錄,其中libs、sh均爲smarheap庫的連接和庫文件。
接下來的內容主要爲針對base和peak的編譯參數。主要的規則如下:benchmark[,...]=tuning[,...]=extension[,...]=machine[,...]
每個部分的可選內容如下所示:
benchmark: | 1.default |
tuning: | 1.default |
extension: | 1default |
machine: | 1.default |
int=default=default=default:
#根據上述表格,其表示int測試集、測試方式包含base和 peak。同時擴展名按照上面ext內容;機器爲默認。
CC= icc -m32-L/opt/intel/compilers_and_libraries_2016/linux/compiler/lib/ia32_lin
#C編譯方式,icc編譯,生成32位,連接庫爲後面的目錄。
CXX= icpc -m32-L/opt/intel/compilers_and_libraries_2016/linux/compiler/lib/ia32_lin
#c++編譯方式,和上述C語言編譯一致
OBJ = .o
#編譯對象文件擴展爲.o文件
SMARTHEAP32_DIR = /sh #32位smartheap庫目錄,因此需要將其拷貝到根目錄下
SMARTHEAP64_DIR = /sh
#64位smartheap庫目錄
PORTABILITY = -D_FILE_OFFSET_BITS=64 #portability參數,文件偏移位數:64
fp=default=default=default:
#同上int
CC= icc -m64
#問題,此處-m64表示生成64位程序,爲啥這麼做呢?
CXX= icpc -m64
FC= ifort -m64
OBJ = .o
接下來爲關鍵的綁定策略。默認都會自動提交
default:
#submit關鍵字則是提交的shell命令,內容是對於每個子線程命令$command,進行綁定操作,內存爲本地綁定,核綁定則是綁定則是按順序綁定core:0~191。$SPECCOPYNUM是runspec腳本中的全局變量。是因爲runspec腳本中看到submit關鍵詞就進行下面操作?根據文檔表示,$SPECCOPYNUM根據你的runspec命令中copy數量來定,一般從0開始,到你的核數本次測試即:0~191.
submit = numactl --localalloc--physcpubind=$SPECCOPYNUM $command
%ifdef %{no-numa}
#如果在runspec命令中添加了no-numa定義(define)則執行如下命令,即利用taskset來進行cpu綁定。
submit = taskset -c $SPECCOPYNUM $command
%endif
下面是編譯器的選項
default:
SSE = -xCORE-AVX2
#使用指令集爲xCORE-AVX2,這個是目前效率最高,適合對應的intel的CPU。
FASTNOSTATIC = $(SSE) -ipo -O3 -no-prec-div #優化選項,後面三項均是編譯
優化參數,詳細見icc編譯器參數
FAST = $(SSE) -ipo -O3 -no-prec-div #同上所示
後續是針對每一個基準設置的不同的Portability選項,舉例如下
400.perlbench=default:
#其他的編譯參數均爲默認的,如上所示
CPORTABILITY= -DSPEC_CPU_LINUX_IA32
#可移植性選項,具體意義待定
後續471、473和483三個基準使用了smartheap庫,具體使用的參數如下所示:
471.omnetpp,473.astar,483.xalancbmk=default:
EXTRA_LIBS= -L$(SMARTHEAP32_DIR) -lsmartheap
#鏈接到smartheap庫中
EXTRA_LDFLAGS= -Wl,-z,muldefs
#待定
後續則是一些優化選項,COPTIMIZE或者CXXOPTIMIZE等選項
int=base=default=default:
COPTIMIZE= $(FASTNOSTATIC) -opt-prefetch -opt-mem-layout-trans=3 #默認編譯器後面添加了幾項-opt-prefetch,-opt-mem-layout-trans=3
CXXOPTIMIZE= $(FASTNOSTATIC) -opt-prefetch -opt-mem-layout-trans=3
fp=base=default=default:
#浮點優化選項
OPTIMIZE= $(FAST) -opt-prefetch
COPTIMIZE= -auto-p32 -ansi-alias-opt-mem-layout-trans=3
CXXOPTIMIZE= -auto-p32 -ansi-alias -opt-mem-layout-trans=3
前面的結果均爲編譯base的參數,後續則是編譯peak的一些參數,如下所示爲整型峯值參數信息
:
int=peak=default:
COPTIMIZE= -ansi-alias -opt-mem-layout-trans=3
CXXOPTIMIZE= -ansi-alias -opt-mem-layout-trans=3
PASS1_CFLAGS = -prof-gen:threadsafe -par-num-threads=1
PASS2_CFLAGS = $(FASTNOSTATIC) -prof-use
PASS1_CXXFLAGS = -prof-gen:threadsafe -par-num-threads=1
PASS2_CXXFLAGS = $(FASTNOSTATIC) -prof-use
PASS1_LDCFLAGS = -prof-gen:threadsafe -par-num-threads=1
PASS2_LDCFLAGS = $(FASTNOSTATIC) -prof-use
PASS1_LDCXXFLAGS = -prof-gen:threadsafe-par-num-threads=1
PASS2_LDCXXFLAGS = $(FASTNOSTATIC)-prof-use
緊接着則是每個整型bench的單獨peak參數,同時後續則是浮點相關的參數。接下來則是一些和自己信息匹配的系統和硬件信息。如下部分示例信息所示:
default=default=default=default:
license_num = 13
#序號,每個廠商有自己的序列號
test_sponsor = Intel Corporation
#廠商
hw_avail = Dec-9999
#硬件獲取日期
sw_avail = Jan-2016
#系統獲取日期
tester = Intel Corporation
#測試廠商
hw_cpu_name = Intel Trademarked CPU Name
#cpu的名稱
最後則是md5校驗信息,這個信息十分重要,用於檢驗結果的正確性,編譯的準確性,如果已經生成了一組md5校驗結果,後續將config文件修改,則會要求修改failbuild,否則出現錯誤。下面畫出config文件的sections。
runspec選項 |
base選項(編譯器) |
peak選項(編譯器) |
hw和os信息(結果顯示) |
md5校驗信息(結果驗證) |
2)flag文件
flag腳本目的在於格式化測試結果,一般選用官網已有的一些xml文件即可,不需要手動修改內容。