MiniCPM-V 4.6
MiniCPM-V 4.6
MiniCPM-V 4.6은 OpenBMB가 개발한 차세대 멀티모달 모델이에요. MiniCPM-V 시리즈의 팀이 만들었죠. 이 모델은 Qwen3.5 스타일 하이브리드 LLM 백본(Gated Delta Net + full attention)과 임의 종횡비와 고해상도 슬라이싱을 네이티브로 처리하는 NaViT-패킹 비전 인코더, 그리고 엔드투엔드 비디오 지원을 결합해요.
출처: 문서
본문
1. Model Introduction
MiniCPM-V 4.6은 MiniCPM-V 시리즈를 만든 팀인 OpenBMB의 차세대 멀티모달 모델이에요. 이 모델은 Qwen3.5 스타일 하이브리드 LLM 백본(Gated Delta Net + full attention)과 임의 종횡비·고해상도 슬라이싱을 네이티브로 처리하는 NaViT-패킹 비전 인코더, 그리고 엔드투엔드 비디오 지원을 결합해요.
OpenBMB는 HuggingFace에 두 가지 변형을 제공해요:
openbmb/MiniCPM-V-4.6— 기본 instruct 모델. 일반적인 멀티모달 서빙에 이 모델을 사용하세요. thinking 모드는chat_template_kwargs.enable_thinking=true로 요청마다 여전히 사용할 수 있어요.openbmb/MiniCPM-V-4.6-Thinking— 더 강한 chain-of-thought 동작을 가진 thinking 튜닝 변형. 동일한--reasoning-parser qwen3플래그와 함께 사용해요.
주요 특징:
- 하이브리드 LLM 백본: Gated Delta Net(선형 attention) 레이어와 full-attention 레이어를 섞은 Qwen3.5 스타일 — 모델링 파워를 포기하지 않으면서 긴 컨텍스트 효율을 제공해요.
- 네이티브 가변 해상도 비전: mid-ViT merger와 이미지별 window attention을 갖춘 NaViT-패킹 비전 인코더. 강제 letterboxing 없이 모든 종횡비의 이미지를 처리해요.
- 고해상도 슬라이싱: 원본 이미지와 구성 가능한 슬라이스 타일 그리드(오픈 테스트 변형에서 최대 9 타일)로 1280×720+ 이미지의 세부 디테일을 추론할 수 있어요.
- 비디오: 프레임별 멀티모달 데이터 항목이 동일한 비전 인코더로 라우팅돼요. 요청당 프레임 수는 무제한이에요.
- Reasoning Parser: 전환 가능한 thinking 모드(Qwen3.5 계열). 요청마다
chat_template_kwargs.enable_thinking, 서버 측에서는 SGLang의--reasoning-parser qwen3로 노출돼요. - Tool Calling: Qwen3.5 스타일
<tool_call><function=…><parameter=…>…</parameter></function></tool_call>XML 형식. SGLang의--tool-call-parser qwen3_coder를 통해 OpenAI 호환message.tool_calls로 표면화돼요. thinking 모드·이미지/비디오 입력과 함께 사용할 수 있어요.
라이선스: Apache 2.0.
2. SGLang Installation
nightly Docker 이미지를 받으세요(롤링 태그, main 추적):
# CUDA 13 (Hopper / Blackwell, default)
docker pull lmsysorg/sglang:dev
# CUDA 12 (Ampere or older drivers). Final build: the CUDA 12 lane is retired,
# so this tag no longer tracks main.
docker pull lmsysorg/sglang:dev-cu12
일반적인 SGLang 설치 가이드(PyPI, 소스, Docker)는 공식 SGLang 설치 가이드를 참고하세요.
3. Model Deployment
3.1 Basic Configuration
대화형 명령 생성기: 아래 구성 선택기를 사용해 적절한 배포 명령을 생성하세요. Variant 토글은 openbmb/MiniCPM-V-4.6(base)과 openbmb/MiniCPM-V-4.6-Thinking 사이를 전환해요. Reasoning Parser와 Tool Call Parser 토글은 각각 --reasoning-parser qwen3와 --tool-call-parser qwen3_coder를 추가해요. 사용 세부 사항은 §4.4를 참조하세요.
3.2 Configuration Tips
- Mamba Radix Cache: Qwen3.5의 하이브리드 Gated Delta Networks 아키텍처는
--mamba-radix-cache-strategy를 통해 두 가지 mamba 스케줄링 전략을 지원해요:- V1 (
no_buffer): 기본값. overlap 스케줄러 없음, 더 낮은 메모리 사용. AMD MI GPU에 필요해요. - V2 (
extra_buffer):--mamba-radix-cache-strategy extra_buffer --page-size 64로 overlap 스케줄링과 branching point 캐싱을 활성화. FLA 커널 백엔드(NVIDIA GPU 전용) 필요. 더 높은 mamba 상태 메모리를 처리량 향상과 맞바꿔요. 비-KV-cache-바운드 시나리오에서는 엄격히 우월하고, KV-cache-바운드 경우에는 overlap 스케줄링 이점과 줄어든 최대 동시성을 저울질해야 해요.--page-size는FLA_CHUNK_SIZE % page_size == 0또는page_size % FLA_CHUNK_SIZE == 0을 만족해야 해요(FLA_CHUNK_SIZE는 현재 64).
- V1 (
--mem-fraction-static플래그는 최적의 메모리 활용을 위해 권장되며, 하드웨어와 워크로드에 따라 조정하세요.- 컨텍스트 길이 기본값은 262,144 토큰이에요. OOM 오류가 발생하면 줄이는 것을 고려하되, thinking 기능을 유지하려면 최소 128K는 유지하세요.
- 이 큰 모델의 가중치 로딩을 빠르게 하려면 실행 명령에
--model-loader-extra-config='{"enable_multithread_load": "true","num_threads": 64}'를 추가하세요. - CUDA IPC Transport: 환경 변수로
SGLANG_USE_CUDA_IPC_TRANSPORT=1을 추가하면 멀티모달 특성을 전송하는 데 CUDA IPC를 사용해 TTFT(Time To First Token)를 크게 개선해요. 주의: 이미지 크기에 비례해 추가 메모리를 소모하므로--mem-fraction-static이나--max-running-requests를 낮춰야 할 수 있어요. - Multimodal Attention Backend: H100/H200에서는
--mm-attention-backend fa3을, B200/B300에서는--mm-attention-backend fa4를 사용해 더 나은 비전 성능을 얻으세요. - 큰 이미지나 비디오를 처리할 때는 이미지 특성 텐서 공간을 확보하도록
--mem-fraction-static을 낮춰야 할 수 있어요. - 다중 이미지 및 고해상도 이미지: 이미지 프로세서는 원본 픽셀 하나와 슬라이스 타일 패치를 만들어 내며, 각각이 자체
MultimodalDataItem이에요. 특별한 서버 측 플래그는 필요 없어요. - 비디오: 동일한 이미지 스타일 슬라이서로 프레임별 디코딩돼요. 추가 플래그 없이 OpenAI 채팅 완성 요청에
video_url을 전달하면 돼요. - Chunked Prefill: 큰/슬라이스된 이미지가 많은 고동시성 비전 벤치마킹에서는
--chunked-prefill-size -1을 전달해 prefill 청킹을 비활성화하세요. 기본 chunked-prefill 경로는mm_utils.embed_mm_inputs에서 이미지 경계를 가로질러 요청을 잘못 분할해 서버가 중단될 수 있어요. 청킹을 비활성화하면 동시성 하에서 더 높은 TTFT를 대가로 이 문제를 피할 수 있어요. 대화형 서빙에는 기본값을 그대로 두세요.
4. Model Invocation
H200에 모델을 배포하세요:
sglang serve --model-path openbmb/MiniCPM-V-4.6 \
--trust-remote-code \
--dtype bfloat16 \
--mem-fraction-static 0.15 \
--mamba-radix-cache-strategy extra_buffer \
--page-size 64 \
--host 0.0.0.0 --port 30000
4.1 Basic Usage (Image)
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:30000/v1",
api_key="EMPTY",
)
response = client.chat.completions.create(
model="openbmb/MiniCPM-V-4.6",
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://www.ilankelman.org/stopsigns/australia.jpg",
},
},
{"type": "text", "text": "Describe this image in one sentence."},
],
}
],
max_tokens=200,
extra_body={"chat_template_kwargs": {"enable_thinking": False}},
)
print(response.choices[0].message.content)
출력 예시:
A black SUV drives past a Chinese-style gate with a red stop sign and traditional architecture, while storefronts and street signs line the sidewalk.
4.2 High-Resolution / Sliced Images
이미지 프로세서는 고해상도 입력에 대해 자동으로 슬라이스 그리드(최대 9 타일)를 선택해요. 1280×720 소스는 그리드 [2, 3]을 만들어요:
tgt_sizes=[(24, 44), 6×(28, 36)]인 7개 패치 — HF 참조 구현과 바이트 단위로 일치해요.
from openai import OpenAI
client = OpenAI(base_url="http://localhost:30000/v1", api_key="EMPTY")
response = client.chat.completions.create(
model="openbmb/MiniCPM-V-4.6",
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/idefics-few-shot.jpg",
},
},
{"type": "text", "text": "Describe this image in one sentence."},
],
}
],
max_tokens=200,
extra_body={"chat_template_kwargs": {"enable_thinking": False}},
)
print(response.choices[0].message.content)
출력 예시:
The Statue of Liberty stands tall against a cloudy sky, holding a torch aloft and a document in her left hand, symbolizing freedom and enlightenment.
4.3 Video Input
from openai import OpenAI
client = OpenAI(base_url="http://localhost:30000/v1", api_key="EMPTY")
response = client.chat.completions.create(
model="openbmb/MiniCPM-V-4.6",
messages=[
{
"role": "user",
"content": [
{
"type": "video_url",
"video_url": {"url": "<your-video-url-or-file-path>"},
},
{"type": "text", "text": "Describe what happens in this video in one sentence."},
],
}
],
max_tokens=200,
extra_body={"chat_template_kwargs": {"enable_thinking": False}},
)
print(response.choices[0].message.content)
출력 예시(움직이는 색상 사각형의 8프레임 합성 테스트 mp4에 대해 실행):
The video shows a grid of colored squares moving in a random pattern.
4.4 Advanced Usage
4.4.1 Reasoning Parser
서버에 --reasoning-parser qwen3를 전달하면(§3.1에서 "Reasoning Parser" 토글 켜기, 기본값) SGLang이 각 응답을 thinking / response 경계로 분할해요: response 이전 블록은 reasoning_content로, 이후 텍스트는 content로 갑니다. 요청마다 채팅 템플릿의 enable_thinking 플래그가 모델이 실제로 추론을 생성할지 여부를 전환해요.
- Thinking 모드(기본값,
enable_thinking=true): assistant 프롬프트가thinking\n으로 끝나요. 모델은 추론을 쓰고response로 닫은 다음 답을 생성해요.reasoning_content와content가 모두 채워져요. - Instruct 모드(
enable_thinking=false): 채팅 템플릿이 빈thinking response플레이스홀더를 주입해서 모델이 thinking 토큰을 생성하지 않아요.reasoning_content는 비어 있게 돼요.
# thinking mode
from openai import OpenAI
client = OpenAI(base_url="http://localhost:30000/v1", api_key="EMPTY")
response = client.chat.completions.create(
model="openbmb/MiniCPM-V-4.6",
messages=[{"role": "user", "content": "Reply with the single word 'hi'. No explanation."}],
max_tokens=200,
)
msg = response.choices[0].message
print("reasoning_content:", msg.reasoning_content)
print("content :", msg.content)
reasoning_content: Got it, let's see. The user wants a reply with "hi" and no explanation. So I need to just say "hi" as the response. ...
content : hi
# instruct mode
response = client.chat.completions.create(
model="openbmb/MiniCPM-V-4.6",
messages=[{"role": "user", "content": "Reply with the single word 'hi'. No explanation."}],
max_tokens=200,
extra_body={"chat_template_kwargs": {"enable_thinking": False}},
)
msg = response.choices[0].message
print("reasoning_content:", msg.reasoning_content)
print("content :", msg.content)
reasoning_content:
content : hi
4.4.2 Tool Calling
서버에 --tool-call-parser qwen3_coder를 전달하면(§3.1에서 "Tool Call Parser" 토글 켜기) SGLang이 모델 출력에서 <tool_call> 블록을 추출해 OpenAI 스타일 message.tool_calls 필드(finish_reason="tool_calls" 포함)로 만들어요. 모델은 Qwen3.5 XML 툴콜 형식(<tool_call><function=name><parameter=k>v</parameter></function></tool_call>)을 말하며, qwen3_coder 파서가 올바른 선택이에요. 도구 호출은 두 reasoning 모드와 이미지/비디오 입력 모두와 함께 사용할 수 있어요.
from openai import OpenAI
client = OpenAI(base_url="http://localhost:30000/v1", api_key="EMPTY")
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the current weather for a city.",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string"},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
},
"required": ["location"],
},
},
},
]
response = client.chat.completions.create(
model="openbmb/MiniCPM-V-4.6",
messages=[{"role": "user", "content": "What is the weather in San Francisco? Use the tool."}],
tools=tools,
max_tokens=200,
extra_body={"chat_template_kwargs": {"enable_thinking": False}},
)
choice = response.choices[0]
print("finish_reason:", choice.finish_reason)
for tc in choice.message.tool_calls or []:
print(f" {tc.function.name}({tc.function.arguments})")
finish_reason: tool_calls
get_weather({"location": "San Francisco", "unit": "celsius"})
최종 자연어 답을 얻으려면 도구의 결과를 tool 역할 메시지로 돌려보내고 동일한 tools 목록으로 API를 다시 호출하세요 — 모델이 content에 답과 함께 finish_reason="stop"을 생성해요.
5. Benchmark
공통 테스트 환경(이하 모든 벤치마크):
- 하드웨어: 1× NVIDIA H200 (141 GB), 단일 GPU (TP / DP 없음)
- Docker 이미지:
lmsysorg/sglang:dev(transformers 5.6.0, sgl-kernel 0.4.2.post1) - 정밀도: BF16
공통 서버 실행 명령:
CUDA_VISIBLE_DEVICES=0 python -m sglang.launch_server \
--model-path openbmb/MiniCPM-V-4.6 \
--trust-remote-code \
--dtype bfloat16 \
--mem-fraction-static 0.5 \
--mamba-radix-cache-strategy extra_buffer \
--chunked-prefill-size -1 \
--host 0.0.0.0 --port 30000
(--chunked-prefill-size -1은 비전 처리량 실행에 필요해요. §3.2 참조.)
5.1 Accuracy Benchmark
5.1.1 MMMU Benchmark
- 벤치마크 명령
python3 benchmark/mmmu/bench_sglang.py --port 30000 --concurrency 48 --max-new-tokens 2048
- 테스트 결과
{'Accounting': {'acc': 0.767, 'num': 30},
'Agriculture': {'acc': 0.533, 'num': 30},
'Architecture_and_Engineering': {'acc': 0.4, 'num': 30},
'Art': {'acc': 0.6, 'num': 30},
'Art_Theory': {'acc': 0.667, 'num': 30},
'Basic_Medical_Science': {'acc': 0.533, 'num': 30},
'Biology': {'acc': 0.333, 'num': 30},
'Chemistry': {'acc': 0.333, 'num': 30},
'Clinical_Medicine': {'acc': 0.467, 'num': 30},
'Computer_Science': {'acc': 0.333, 'num': 30},
'Design': {'acc': 0.533, 'num': 30},
'Diagnostics_and_Laboratory_Medicine': {'acc': 0.333, 'num': 30},
'Economics': {'acc': 0.633, 'num': 30},
'Electronics': {'acc': 0.5, 'num': 30},
'Energy_and_Power': {'acc': 0.633, 'num': 30},
'Finance': {'acc': 0.533, 'num': 30},
'Geography': {'acc': 0.367, 'num': 30},
'History': {'acc': 0.533, 'num': 30},
'Literature': {'acc': 0.7, 'num': 30},
'Manage': {'acc': 0.367, 'num': 30},
'Marketing': {'acc': 0.733, 'num': 30},
'Materials': {'acc': 0.367, 'num': 30},
'Math': {'acc': 0.567, 'num': 30},
'Mechanical_Engineering': {'acc': 0.333, 'num': 30},
'Music': {'acc': 0.267, 'num': 30},
'Overall': {'acc': 0.527, 'num': 900},
'Overall-Art and Design': {'acc': 0.517, 'num': 120},
'Overall-Business': {'acc': 0.607, 'num': 150},
'Overall-Health and Medicine': {'acc': 0.553, 'num': 150},
'Overall-Humanities and Social Science': {'acc': 0.617, 'num': 120},
'Overall-Science': {'acc': 0.473, 'num': 150},
'Overall-Tech and Engineering': {'acc': 0.443, 'num': 210},
'Pharmacy': {'acc': 0.667, 'num': 30},
'Physics': {'acc': 0.767, 'num': 30},
'Psychology': {'acc': 0.567, 'num': 30},
'Public_Health': {'acc': 0.767, 'num': 30},
'Sociology': {'acc': 0.667, 'num': 30}}
eval out saved to ./val_sglang.json
Overall accuracy: 0.527
5.2 Speed Benchmark
SGLang 내장 bench_serving 도구를 임의 텍스트 프롬프트(1000 입력 / 1000 출력 토큰)와 함께 사용해 텍스트 전용 서빙 성능을 특성화해요.
5.2.1 Latency Benchmark
python3 -m sglang.bench_serving \
--backend sglang \
--model openbmb/MiniCPM-V-4.6 \
--dataset-name random \
--random-input-len 1000 \
--random-output-len 1000 \
--num-prompts 10 \
--max-concurrency 1 \
--request-rate inf
============ Serving Benchmark Result ============
Backend: sglang
Traffic request rate: inf
Max request concurrency: 1
Successful requests: 10
Benchmark duration (s): 7.47
Total input tokens: 6101
Total input text tokens: 6101
Total generated tokens: 4220
Total generated tokens (retokenized): 3554
Request throughput (req/s): 1.34
Input token throughput (tok/s): 816.44
Output token throughput (tok/s): 564.73
Peak output token throughput (tok/s): 690.00
Peak concurrent requests: 4
Total token throughput (tok/s): 1381.17
Concurrency: 1.00
----------------End-to-End Latency----------------
Mean E2E Latency (ms): 746.20
Median E2E Latency (ms): 590.05
P90 E2E Latency (ms): 1446.13
P99 E2E Latency (ms): 1709.38
---------------Time to First Token----------------
Mean TTFT (ms): 138.12
Median TTFT (ms): 103.70
P99 TTFT (ms): 330.79
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms): 1.44
Median TPOT (ms): 1.44
P99 TPOT (ms): 1.45
---------------Inter-Token Latency----------------
Mean ITL (ms): 1.44
Median ITL (ms): 1.45
P95 ITL (ms): 1.49
P99 ITL (ms): 1.57
Max ITL (ms): 5.79
==================================================
5.2.2 Throughput Benchmark
python3 -m sglang.bench_serving \
--backend sglang \
--model openbmb/MiniCPM-V-4.6 \
--dataset-name random \
--random-input-len 1000 \
--random-output-len 1000 \
--num-prompts 1000 \
--max-concurrency 100 \
--request-rate inf
============ Serving Benchmark Result ============
Backend: sglang
Traffic request rate: inf
Max request concurrency: 100
Successful requests: 1000
Benchmark duration (s): 47.07
Total input tokens: 502493
Total input text tokens: 502493
Total generated tokens: 500251
Total generated tokens (retokenized): 469844
Request throughput (req/s): 21.24
Input token throughput (tok/s): 10675.32
Output token throughput (tok/s): 10627.69
Peak output token throughput (tok/s): 25911.00
Peak concurrent requests: 130
Total token throughput (tok/s): 21303.01
Concurrency: 97.24
----------------End-to-End Latency----------------
Mean E2E Latency (ms): 4576.94
Median E2E Latency (ms): 4331.97
P90 E2E Latency (ms): 8634.07
P99 E2E Latency (ms): 9636.44
---------------Time to First Token----------------
Mean TTFT (ms): 206.50
Median TTFT (ms): 184.72
P99 TTFT (ms): 624.23
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms): 8.73
Median TPOT (ms): 9.16
P99 TPOT (ms): 13.63
---------------Inter-Token Latency----------------
Mean ITL (ms): 8.75
Median ITL (ms): 0.05
P95 ITL (ms): 29.95
P99 ITL (ms): 108.91
Max ITL (ms): 448.40
==================================================
5.3 Vision Speed Benchmark
SGLang 내장 bench_serving 도구를 임의 이미지와 함께 사용해요. 각 요청은 128개의 입력 텍스트 토큰, 720p 이미지 1장, 1024개의 출력 토큰을 가져요.
5.3.1 Latency Benchmark
python3 -m sglang.bench_serving \
--backend sglang-oai-chat \
--host 127.0.0.1 \
--port 30000 \
--model openbmb/MiniCPM-V-4.6 \
--dataset-name image \
--image-count 1 \
--image-resolution 720p \
--random-input-len 128 \
--random-output-len 1024 \
--num-prompts 10 \
--max-concurrency 1 \
--request-rate inf
============ Serving Benchmark Result ============
Backend: sglang-oai-chat
Traffic request rate: inf
Max request concurrency: 1
Successful requests: 10
Benchmark duration (s): 10.26
Total input tokens: 767
Total input text tokens: 750
Total input vision tokens: 17
Total generated tokens: 4220
Total generated tokens (retokenized): 4220
Request throughput (req/s): 0.97
Input token throughput (tok/s): 74.77
Output token throughput (tok/s): 411.39
Peak output token throughput (tok/s): 654.00
Peak concurrent requests: 2
Total token throughput (tok/s): 486.16
Concurrency: 1.00
----------------End-to-End Latency----------------
Mean E2E Latency (ms): 1024.04
Median E2E Latency (ms): 897.99
P90 E2E Latency (ms): 1584.25
P99 E2E Latency (ms): 1781.78
---------------Time to First Token----------------
Mean TTFT (ms): 416.94
Median TTFT (ms): 403.18
P99 TTFT (ms): 477.49
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms): 1.44
Median TPOT (ms): 1.44
P99 TPOT (ms): 1.45
---------------Inter-Token Latency----------------
Mean ITL (ms): 1.44
Median ITL (ms): 1.44
P95 ITL (ms): 1.48
P99 ITL (ms): 1.56
Max ITL (ms): 2.89
==================================================
5.3.2 Throughput Benchmark
python3 -m sglang.bench_serving \
--backend sglang-oai-chat \
--host 127.0.0.1 \
--port 30000 \
--model openbmb/MiniCPM-V-4.6 \
--dataset-name image \
--image-count 1 \
--image-resolution 720p \
--random-input-len 128 \
--random-output-len 1024 \
--num-prompts 1000 \
--max-concurrency 100 \
--request-rate inf
============ Serving Benchmark Result ============
Backend: sglang-oai-chat
Traffic request rate: inf
Max request concurrency: 100
Successful requests: 1000
Benchmark duration (s): 360.01
Total input tokens: 79925
Total input text tokens: 78283
Total input vision tokens: 1642
Total generated tokens: 510855
Total generated tokens (retokenized): 430289
Request throughput (req/s): 2.78
Input token throughput (tok/s): 222.01
Output token throughput (tok/s): 1419.01
Peak output token throughput (tok/s): 19620.00
Peak concurrent requests: 105
Total token throughput (tok/s): 1641.02
Concurrency: 99.69
----------------End-to-End Latency----------------
Mean E2E Latency (ms): 35888.57
Median E2E Latency (ms): 35321.48
P90 E2E Latency (ms): 41017.37
P99 E2E Latency (ms): 60343.22
---------------Time to First Token----------------
Mean TTFT (ms): 35096.32
Median TTFT (ms): 34301.37
P99 TTFT (ms): 59966.25
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms): 1.63
Median TPOT (ms): 1.45
P99 TPOT (ms): 10.15
---------------Inter-Token Latency----------------
Mean ITL (ms): 1.58
Median ITL (ms): 0.12
P95 ITL (ms): 0.23
P99 ITL (ms): 0.77
Max ITL (ms): 2086.12
==================================================