Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
3818f647
Commit
3818f647
authored
Mar 10, 2019
by
Manjunath A Kumatagi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactor the node perf tests to run on non-amd64 cluster
parent
c90bf8d8
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
69 additions
and
48 deletions
+69
-48
image_list.go
test/e2e_node/image_list.go
+2
-2
node_perf_test.go
test/e2e_node/node_perf_test.go
+65
-44
npb_ep.go
test/e2e_node/perf/workloads/npb_ep.go
+1
-1
npb_is.go
test/e2e_node/perf/workloads/npb_is.go
+1
-1
No files found.
test/e2e_node/image_list.go
View file @
3818f647
...
...
@@ -53,8 +53,8 @@ var NodeImageWhiteList = sets.NewString(
imageutils
.
GetE2EImage
(
imageutils
.
Nonewprivs
),
imageutils
.
GetPauseImageName
(),
framework
.
GetGPUDevicePluginImage
(),
"gcr.io/kubernetes-e2e-test-images/node-perf/npb-is
-amd64
:1.0"
,
"gcr.io/kubernetes-e2e-test-images/node-perf/npb-ep
-amd64
:1.0"
,
"gcr.io/kubernetes-e2e-test-images/node-perf/npb-is:1.0"
,
"gcr.io/kubernetes-e2e-test-images/node-perf/npb-ep:1.0"
,
"gcr.io/kubernetes-e2e-test-images/node-perf/tf-wide-deep-amd64:1.0"
,
)
...
...
test/e2e_node/node_perf_test.go
View file @
3818f647
...
...
@@ -56,53 +56,74 @@ func setKubeletConfig(f *framework.Framework, cfg *kubeletconfig.KubeletConfigur
// Slow by design.
var
_
=
SIGDescribe
(
"Node Performance Testing [Serial] [Slow]"
,
func
()
{
f
:=
framework
.
NewDefaultFramework
(
"node-performance-testing"
)
var
(
wl
workloads
.
NodePerfWorkload
oldCfg
*
kubeletconfig
.
KubeletConfiguration
newCfg
*
kubeletconfig
.
KubeletConfiguration
pod
*
corev1
.
Pod
)
JustBeforeEach
(
func
()
{
err
:=
wl
.
PreTestExec
()
framework
.
ExpectNoError
(
err
)
oldCfg
,
err
=
getCurrentKubeletConfig
()
framework
.
ExpectNoError
(
err
)
newCfg
,
err
=
wl
.
KubeletConfig
(
oldCfg
)
framework
.
ExpectNoError
(
err
)
setKubeletConfig
(
f
,
newCfg
)
})
Context
(
"Run node performance testing with pre-defined workloads"
,
func
()
{
It
(
"run each pre-defined workload"
,
func
()
{
By
(
"running the workloads"
)
for
_
,
workload
:=
range
workloads
.
NodePerfWorkloads
{
By
(
"running the pre test exec from the workload"
)
err
:=
workload
.
PreTestExec
()
framework
.
ExpectNoError
(
err
)
By
(
"restarting kubelet with required configuration"
)
// Get the Kubelet config required for this workload.
oldCfg
,
err
:=
getCurrentKubeletConfig
()
framework
.
ExpectNoError
(
err
)
newCfg
,
err
:=
workload
.
KubeletConfig
(
oldCfg
)
framework
.
ExpectNoError
(
err
)
// Set the Kubelet config required for this workload.
setKubeletConfig
(
f
,
newCfg
)
By
(
"running the workload and waiting for success"
)
// Make the pod for the workload.
pod
:=
makeNodePerfPod
(
workload
)
// Create the pod.
pod
=
f
.
PodClient
()
.
CreateSync
(
pod
)
// Wait for pod success.
f
.
PodClient
()
.
WaitForSuccess
(
pod
.
Name
,
workload
.
Timeout
())
podLogs
,
err
:=
framework
.
GetPodLogs
(
f
.
ClientSet
,
f
.
Namespace
.
Name
,
pod
.
Name
,
pod
.
Spec
.
Containers
[
0
]
.
Name
)
framework
.
ExpectNoError
(
err
)
perf
,
err
:=
workload
.
ExtractPerformanceFromLogs
(
podLogs
)
framework
.
ExpectNoError
(
err
)
framework
.
Logf
(
"Time to complete workload %s: %v"
,
workload
.
Name
(),
perf
)
// Delete the pod.
gp
:=
int64
(
0
)
delOpts
:=
metav1
.
DeleteOptions
{
GracePeriodSeconds
:
&
gp
,
}
f
.
PodClient
()
.
DeleteSync
(
pod
.
Name
,
&
delOpts
,
framework
.
DefaultPodDeletionTimeout
)
cleanup
:=
func
()
{
gp
:=
int64
(
0
)
delOpts
:=
metav1
.
DeleteOptions
{
GracePeriodSeconds
:
&
gp
,
}
f
.
PodClient
()
.
DeleteSync
(
pod
.
Name
,
&
delOpts
,
framework
.
DefaultPodDeletionTimeout
)
By
(
"running the post test exec from the workload"
)
err
:=
wl
.
PostTestExec
()
framework
.
ExpectNoError
(
err
)
setKubeletConfig
(
f
,
oldCfg
)
}
By
(
"running the post test exec from the workload"
)
err
=
workload
.
PostTestExec
()
framework
.
ExpectNoError
(
err
)
runWorkload
:=
func
()
{
By
(
"running the workload and waiting for success"
)
// Make the pod for the workload.
pod
=
makeNodePerfPod
(
wl
)
// Create the pod.
pod
=
f
.
PodClient
()
.
CreateSync
(
pod
)
// Wait for pod success.
f
.
PodClient
()
.
WaitForSuccess
(
pod
.
Name
,
wl
.
Timeout
())
podLogs
,
err
:=
framework
.
GetPodLogs
(
f
.
ClientSet
,
f
.
Namespace
.
Name
,
pod
.
Name
,
pod
.
Spec
.
Containers
[
0
]
.
Name
)
framework
.
ExpectNoError
(
err
)
perf
,
err
:=
wl
.
ExtractPerformanceFromLogs
(
podLogs
)
framework
.
ExpectNoError
(
err
)
framework
.
Logf
(
"Time to complete workload %s: %v"
,
wl
.
Name
(),
perf
)
}
// Set the Kubelet config back to the old one.
setKubeletConfig
(
f
,
oldCfg
)
}
Context
(
"Run node performance testing with pre-defined workloads"
,
func
()
{
BeforeEach
(
func
()
{
wl
=
workloads
.
NodePerfWorkloads
[
0
]
})
It
(
"NAS parallel benchmark (NPB) suite - Integer Sort (IS) workload"
,
func
()
{
defer
cleanup
()
runWorkload
()
})
})
Context
(
"Run node performance testing with pre-defined workloads"
,
func
()
{
BeforeEach
(
func
()
{
wl
=
workloads
.
NodePerfWorkloads
[
1
]
})
It
(
"NAS parallel benchmark (NPB) suite - Embarrassingly Parallel (EP) workload"
,
func
()
{
defer
cleanup
()
runWorkload
()
})
})
Context
(
"Run node performance testing with pre-defined workloads"
,
func
()
{
BeforeEach
(
func
()
{
wl
=
workloads
.
NodePerfWorkloads
[
2
]
})
It
(
"TensorFlow workload"
,
func
()
{
defer
cleanup
()
runWorkload
()
})
})
})
test/e2e_node/perf/workloads/npb_ep.go
View file @
3818f647
...
...
@@ -43,7 +43,7 @@ func (w npbEPWorkload) PodSpec() corev1.PodSpec {
var
containers
[]
corev1
.
Container
ctn
:=
corev1
.
Container
{
Name
:
fmt
.
Sprintf
(
"%s-ctn"
,
w
.
Name
()),
Image
:
"gcr.io/kubernetes-e2e-test-images/node-perf/npb-ep
-amd64
:1.0"
,
Image
:
"gcr.io/kubernetes-e2e-test-images/node-perf/npb-ep:1.0"
,
Resources
:
corev1
.
ResourceRequirements
{
Requests
:
corev1
.
ResourceList
{
corev1
.
ResourceName
(
corev1
.
ResourceCPU
)
:
resource
.
MustParse
(
"15000m"
),
...
...
test/e2e_node/perf/workloads/npb_is.go
View file @
3818f647
...
...
@@ -41,7 +41,7 @@ func (w npbISWorkload) PodSpec() corev1.PodSpec {
var
containers
[]
corev1
.
Container
ctn
:=
corev1
.
Container
{
Name
:
fmt
.
Sprintf
(
"%s-ctn"
,
w
.
Name
()),
Image
:
"gcr.io/kubernetes-e2e-test-images/node-perf/npb-is
-amd64
:1.0"
,
Image
:
"gcr.io/kubernetes-e2e-test-images/node-perf/npb-is:1.0"
,
Resources
:
corev1
.
ResourceRequirements
{
Requests
:
corev1
.
ResourceList
{
corev1
.
ResourceName
(
corev1
.
ResourceCPU
)
:
resource
.
MustParse
(
"16000m"
),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment