pixop-startup-timeline

pixop-startup-timeline

Collect cold-start milestones from existing systemd timestamps, journald excerpts, and /var/log/pixop-live/live.log pattern matches. Used to separate slow first-boot GPU/model paths from EBS volume hydration on AWS.

Availability: Verify this tool on your appliance with command -v pixop-startup-timeline and pixop-version (may be absent on some recipes). Installed path when present: /opt/pixop/bin/pixop-startup-timeline.

Purpose and scope

Read-only: does not warm disks, change services, enable profiling, or print secrets. Complements journalctl and live.log with a single scrollable report for support.

Non-root users are re-execed via sudo.

Usage

pixop-startup-timeline

No flags. Optional environment:

VariableDefault
PIXOP_LIVE_LOG/var/log/pixop-live/live.log

Output sections

Host boot

  • systemd-analyze summary when available.
  • journald start timestamp from systemd-journald.service inactive exit time.

systemd units

For each unit, prints ActiveEnterTimestamp and ExecMainStartTimestamp:

Use these to see ordering gaps (for example Docker before live, init before ingress).

Journald lifecycle (this boot)

Filtered journalctl -b lines (up to 80) for the units above matching start/finish/license/error patterns.

Pixop live.log milestones

Scans live.log for first matching lines (most recent boot wins if log was appended):

Milestone keyTypical signal
wrapper_license_warnLicense file not found (early boot)
nvencc_bannerNVEncC banner
cuda_apiNVENC API init
gpu_deviceGPU enumeration
nvencc_launchLaunching /opt/pixop/nvencc
rest_httpREST HTTP server started
model_begin / model_readyModel load phases
first_frameFirst decoded/encoded frame style messages

n/a ... not found means the pattern never appeared (truncated log, failed start, or different log format).

Current listeners

UDP ports 5000–5003 from ss, or a note if none bound.

Closing reminder: timeline reads existing logs only; it does not warm EBS or start services.

Interpreting results

PatternLikely interpretation
Long gap nvencc_launch → rest_httpGPU/driver or container bring-up
Long gap model_begin → model_readyModel load from image/weights (first launch can be minutes)
Long gap before any live.log line while units activePossible EBS snapshot hydration on fresh AWS volumes — not fixed by this tool
instance-init late vs ingressFirst-boot credential generation still running
Missing UDP 5000 at endIngress not up yet or stack stopped

Compare two boots: one immediately after launch, one after the instance has been up — hydration delays often shrink on the second boot.

Operator workflows

After a slow first Marketplace launch:

pixop-startup-timeline | tee /tmp/startup-timeline.txt
pixop-version
pixop-preflight | tail -n 5

KVM cold boot diagnosis:

sudo reboot
# after SSH returns
pixop-startup-timeline

Pair with pixop-support-bundle if support needs full journals (timeline is a lightweight slice).

Limitations

  • Pattern matching on live.log is heuristic; upgraded Pixop LIVE images may change log text (not found does not alone prove failure).
  • Does not timestamp every subsystem (no per-container Docker events).
  • Does not replace GPU benchmarks or pixop-test-live.
  • Cannot accelerate EBS — see CloudFormation volume initialization notes in engineering cloudformation/README.md.

Privacy

No passphrases or JWT content. Journal snippets may contain instance identifiers or internal URLs — handle like other operational logs.

Related


Did this page help you?