Size: a a a

SPb Reliability Meetup

2019 November 06

PK

Phil Kulin in SPb Reliability Meetup
Егор
Ну там в интерфейсе сверху слева
Так. Я вижу простыню, которая для меня выглядит как заставка фильма матрица
источник

Е

Егор in SPb Reliability Meetup
Ищи свой файл
источник

Е

Егор in SPb Reliability Meetup
Там будет написано типа строчка и Скока мегабайт аллоцировал снаружи и внутри
источник

Е

Егор in SPb Reliability Meetup
Кстати таймштампы в строках можешь заменить на unix() ещё памяти сэкономишь
источник

Е

Егор in SPb Reliability Meetup
А при выдаче конвертить будешь обратно в строку
источник

Е

Егор in SPb Reliability Meetup
А рпс к сервису значительный будет?
источник

Е

Егор in SPb Reliability Meetup
Я боюсь из-за частых делитов мапу раздует
источник

PK

Phil Kulin in SPb Reliability Meetup
Егор
Кстати таймштампы в строках можешь заменить на unix() ещё памяти сэкономишь
Раздувается всё из-за time.xxxx
источник

PK

Phil Kulin in SPb Reliability Meetup
Смотри, это выгрузка РКН. Всасываею-то я много. Но удаления/добавления там - в самые хайповые времена - пара тысяч в час. Обычно там сейчас по 2-3 выгрузки в час, по паре сотен IP туда-сюда. Может раздует. Я пробовл бегать по массиву - не, очень долго. Вон, даже на апдейти пришлось мапу делать, иначе 2-3 строки апдейта от РКН прекращались в пять минут поиска
источник

PK

Phil Kulin in SPb Reliability Meetup
Наружу сервис только на чтение. parse - это перечитывание вот этого XML и вливание изменений
источник

PK

Phil Kulin in SPb Reliability Meetup
Про мьютексы - в теории, я могу сделать не пачку как тут, а просто один. Чтобы когда пишу - все стояли ждали. Норм. Но много ли я отыграю?
источник

Е

Егор in SPb Reliability Meetup
их нет смысла держать, если апдейты редки
источник

Е

Егор in SPb Reliability Meetup
а на RLock контеншен будет на атомике, что быстрый
источник

PK

Phil Kulin in SPb Reliability Meetup
Егор
их нет смысла держать, если апдейты редки
Они редки, но очень развесисты. Но в принципе, то как у меня - я могу только вон у той основной структуры DumpSnap оставить и только им оперировать. Ну подзависнет на секунду-две раза три в час - вообще не проблема
источник

PK

Phil Kulin in SPb Reliability Meetup
А где-то есть описание того, что я вижу? Что-то у меня гугл забанили
источник

Е

Егор in SPb Reliability Meetup
ой лучше не так смотреть)
источник

Е

Егор in SPb Reliability Meetup
я тебе про такое
https://i.imgur.com/WwkNjSr.png
источник

PK

Phil Kulin in SPb Reliability Meetup
А как получить такую картинку?
источник

Е

Егор in SPb Reliability Meetup
package pprof

import (
"net/http"
_ "net/http/pprof"
"runtime"
)

type Config struct {
Name    string
Address string
}

type Server struct {
config Config
server *http.Server
}

func New(config Config) *Server {
return &Server{
 config: config,
 server: &http.Server{
  Addr: config.Address,
 },
}
}

func (s *Server) Run() {
go func() {
 runtime.SetMutexProfileFraction(5)
 runtime.SetBlockProfileRate(100)
 if err := s.server.ListenAndServe(); err != nil {
  panic("error while starting pprof server")
 }
}()
}
источник

Е

Егор in SPb Reliability Meetup
s := pprof.New(pprof.Config{
Name:    "xxxx",
Address: ":1488",
})
s.Run()

fmt.Println(Parse("./dump.xml"))

time.Sleep(time.Hour)
источник