Skip to content

Instantly share code, notes, and snippets.

@Ladas
Ladas / mock_metrics.rb
Last active January 17, 2018 14:02
generate mock metrics and labels for containers
# ActiveRecord::Base.logger = Logger.new(STDOUT)
NUMBER_OF_CONTAINERS = 20_000 # 100_000
NUMBER_OF_PROJECTS = 100
LABELS_PER_CONTAINER_IMAGE = 20
METRIC_PERIOD = 20.seconds
METRICS_START = 1.days.ago.utc
METRICS_END = Time.now.utc
# Have also archived containers?
@Ladas
Ladas / generate_data_in_parallel.rb
Last active January 10, 2018 15:05
Generates data in parallel, in 8 processe the speed is 86k records per second
ActiveRecord::Base.logger = Logger.new(STDOUT)
UNIQUE_INDEXES_FOR_MODELS = {
# Just having :ems_id & :ems_ref
ContainerBuild => [:ems_id, :ems_ref],
ContainerBuildPod => [:ems_id, :ems_ref],
ContainerGroup => [:ems_id, :ems_ref],
ContainerLimit => [:ems_id, :ems_ref],
ContainerNode => [:ems_id, :ems_ref],
ContainerProject => [:ems_id, :ems_ref],
@Ladas
Ladas / generate_data.rb
Last active January 10, 2018 09:55
Generate huge amount of mock data, can insert around 27.4k records per s into Postgre DB
ActiveRecord::Base.logger = Logger.new(STDOUT)
UNIQUE_INDEXES_FOR_MODELS = {
# Just having :ems_id & :ems_ref
ContainerBuild => [:ems_id, :ems_ref],
ContainerBuildPod => [:ems_id, :ems_ref],
ContainerGroup => [:ems_id, :ems_ref],
ContainerLimit => [:ems_id, :ems_ref],
ContainerNode => [:ems_id, :ems_ref],
ContainerProject => [:ems_id, :ems_ref],
@Ladas
Ladas / perf_capture
Created November 29, 2017 08:53
huntin mem leaks
rss: 908332 live objects 3829402 gc: 23 pg: 9569 fpg: 0 ep 9569 tp 0---- 2017-11-28 16:19:36 UTC 0
rss: 1006148 live objects 3900281 gc: 29 pg: 9569 fpg: 0 ep 9569 tp 0---- 2017-11-28 16:22:15 UTC 1
rss: 1028232 live objects 3886911 gc: 34 pg: 9569 fpg: 0 ep 9569 tp 0---- 2017-11-28 16:25:07 UTC 2
rss: 1039276 live objects 3885838 gc: 39 pg: 9569 fpg: 0 ep 9569 tp 0---- 2017-11-28 16:27:45 UTC 3
rss: 1052328 live objects 3894789 gc: 44 pg: 9569 fpg: 0 ep 9569 tp 0---- 2017-11-28 16:30:15 UTC 4
rss: 1063136 live objects 3878740 gc: 49 pg: 9569 fpg: 0 ep 9569 tp 0---- 2017-11-28 16:32:54 UTC 5
rss: 1073020 live objects 3890319 gc: 54 pg: 9569 fpg: 0 ep 9569 tp 0---- 2017-11-28 16:35:48 UTC 6
rss: 1080832 live objects 3895098 gc: 59 pg: 9569 fpg: 0 ep 9569 tp 0---- 2017-11-28 16:38:27 UTC 7
rss: 1086920 live objects 3900161 gc: 64 pg: 9569 fpg: 0 ep 9569 tp 0---- 2017-11-28 16:41:02 UTC 8
rss: 1091912 live objects 3885167 gc: 69 pg: 9569 fpg: 0 ep 9569 tp 0---- 2017-11-28 16:43:41 UTC 9
def pod(uid)
pod = {"kind" => "Pod",
"apiVersion" => "v1",
"metadata" =>
{"name" => "stress6-1-trz0g",
"generateName" => "stress6-1-",
"namespace" => "vcr-tests",
"selfLink" => "/api/v1/namespaces/vcr-tests/pods/stress6-1-trz0g",
"uid" => uid,
"resourceVersion" => "1809029",
@Ladas
Ladas / ems_events.rb
Created October 9, 2017 14:36
OSE targeted refresh
[#<EmsEvent:0x000000000903d000
id: 3769,
event_type: "CONTAINER_KILLING",
message: "Killing container with id docker://deployment:Need to kill Pod",
timestamp: Mon, 09 Oct 2017 14:15:32 UTC +00:00,
host_name: nil,
host_id: nil,
vm_name: nil,
vm_location: nil,
vm_or_template_id: nil,
@Ladas
Ladas / miq.rb
Last active October 6, 2017 09:29
metrics
{2017-10-05 11:33:14 UTC=>0.0008883925},
{2017-10-05 11:33:54 UTC=>0.0011175},
{2017-10-05 11:34:14 UTC=>22.935428365},
{2017-10-05 11:34:54 UTC=>84.5403323575},
{2017-10-05 11:35:14 UTC=>88.23617879},
{2017-10-05 11:35:54 UTC=>55.870726725},
{2017-10-05 11:36:14 UTC=>80.4185096625},
{2017-10-05 11:36:54 UTC=>74.556680755},
{2017-10-05 11:37:14 UTC=>91.34505966},
{2017-10-05 11:37:54 UTC=>42.44492202},
@Ladas
Ladas / ocp_refresh_mock_data.rb
Created August 9, 2017 14:28
run as "bundle exec rails r ocp_refresh_mock_data.rb"
require 'manageiq_performance'
def persister_class
# ManageIQ::Providers::Kubernetes::Inventory::Persister::ContainerManager
ManageIQ::Providers::Openshift::Inventory::Persister::ContainerManagerStream # just having :batch saving
end
def generate_batches_od_data(ems_name:, total_elements:, batch_size: 1000)
ems = ExtManagementSystem.find_by(:name => ems_name)
persister = persister_class.new(
@Ladas
Ladas / ovirt_count_records.rb
Created August 1, 2017 07:04
Count ovirt records, run as: bundle exec rails r ovirt_count_records.rb
classes = [
ManageIQ::Providers::Redhat::InfraManager,
EmsFolder,
EmsCluster,
ResourcePool,
Host,
Vm,
Relationship,
Storage,
MiqEventDefinition,
@Ladas
Ladas / memusg
Created July 21, 2017 12:02
refresh quick perf test, run as ./memusg bundle exec rails r qe_ocp_refresh_manager_first_refresh.rb <ems_name>, grep evm.log for :save_inventory to get a time
#!/usr/bin/env bash
# memusg -- Measure memory usage of processes
# Usage: memusg COMMAND [ARGS]...
#
# Author: Jaeho Shin <netj@sparcs.org>
# Created: 2010-08-16
############################################################################
# Copyright 2010 Jaeho Shin. #
# #
# Licensed under the Apache License, Version 2.0 (the "License"); #