Skip to content

Commit

Permalink
ps: get network data in batch mode
Browse files Browse the repository at this point in the history
The network functions popped up in the CPU profiles when listing 2042
containers.  Not a very realistic or common use case but a nice way to
get something on the CPU profiles.

Listing 2042 containers now runs 1.54 times faster.

[NO NEW TESTS NEEDED]

Signed-off-by: Valentin Rothberg <[email protected]>
  • Loading branch information
vrothberg committed Jan 24, 2023
1 parent ce504bb commit 6f519c9
Showing 1 changed file with 13 additions and 10 deletions.
23 changes: 13 additions & 10 deletions pkg/ps/ps.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (
"strings"
"time"

libnetworkTypes "github.com/containers/common/libnetwork/types"
"github.com/containers/podman/v4/libpod"
"github.com/containers/podman/v4/libpod/define"
"github.com/containers/podman/v4/pkg/domain/entities"
Expand Down Expand Up @@ -134,6 +135,8 @@ func ListContainerBatch(rt *libpod.Runtime, ctr *libpod.Container, opts entities
startedTime time.Time
exitedTime time.Time
cgroup, ipc, mnt, net, pidns, user, uts string
portMappings []libnetworkTypes.PortMapping
networks []string
)

batchErr := ctr.Batch(func(c *libpod.Container) error {
Expand Down Expand Up @@ -167,6 +170,16 @@ func ListContainerBatch(rt *libpod.Runtime, ctr *libpod.Container, opts entities
return fmt.Errorf("unable to obtain container pid: %w", err)
}

portMappings, err = c.PortMappings()
if err != nil {
return err
}

networks, err = c.Networks()
if err != nil {
return err
}

if !opts.Size && !opts.Namespace {
return nil
}
Expand Down Expand Up @@ -203,16 +216,6 @@ func ListContainerBatch(rt *libpod.Runtime, ctr *libpod.Container, opts entities
return entities.ListContainer{}, batchErr
}

portMappings, err := ctr.PortMappings()
if err != nil {
return entities.ListContainer{}, err
}

networks, err := ctr.Networks()
if err != nil {
return entities.ListContainer{}, err
}

ps := entities.ListContainer{
AutoRemove: ctr.AutoRemove(),
Command: conConfig.Command,
Expand Down

0 comments on commit 6f519c9

Please sign in to comment.