SRE: āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĨ¤ Go-āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ

āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻāĻŦāĻ‚ āĻŸāĻŋāĻ‰āĻ¨āĻŋāĻ‚ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¸āĻŽā§āĻŽāĻ¤āĻŋ āĻ¯āĻžāĻšāĻžāĻ‡ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻļāĻ•ā§āĻ¤āĻŋāĻļāĻžāĻ˛ā§€ āĻšāĻžāĻ¤āĻŋāĻ¯āĻŧāĻžāĻ°āĨ¤

āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻŸāĻŋāĻ‰āĻ¨āĻŋāĻ‚ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ—ā§āĻ˛āĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻŦā§ˆāĻœā§āĻžāĻžāĻ¨āĻŋāĻ• āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽā§‡ āĻŦāĻžāĻ§āĻžāĻ—ā§āĻ˛āĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻāĻ•āĻŸāĻŋ Go āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻāĻŦāĻ‚ āĻŸāĻŋāĻ‰āĻ¨āĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°ā§‡ā§ˇ

Go āĻāĻ–āĻžāĻ¨ā§‡ āĻŦāĻŋāĻļā§‡āĻˇāĻ­āĻžāĻŦā§‡ āĻ­āĻžāĻ˛ā§‹ āĻ•āĻžāĻ°āĻŖ āĻāĻ¤ā§‡ āĻĒā§āĻ°ā§‹āĻĢāĻžāĻ‡āĻ˛āĻŋāĻ‚ āĻŸā§āĻ˛ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ pprof āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻ¤ā§‡āĨ¤

SRE: āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĨ¤ Go-āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ

āĻ•ā§ŒāĻļāĻ˛

āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻžāĻ āĻžāĻŽā§‹āĻ—āĻ¤ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ°āĻžāĻ‚āĻļ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ¯āĻžāĻ•āĨ¤ āĻ†āĻŽāĻ°āĻž āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻĻā§ƒāĻˇā§āĻŸāĻŋ āĻŦāĻž āĻ…āĻ¨ā§āĻŽāĻžāĻ¨ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻŋāĻ›ā§ āĻĄā§‡āĻŸāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻŦāĨ¤ āĻāĻŸāĻŋ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻŽāĻ°āĻž āĻāĻŸāĻŋ āĻ•āĻ°āĻŦ:

  • āĻ†āĻŽāĻ°āĻž āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻžāĻ¨ āĻ¸ā§€āĻŽāĻžāĻ¨āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°āĻŋ (āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž);
  • āĻ†āĻŽāĻ°āĻž āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨ā§‡āĻ° āĻ˛ā§‹āĻĄ āĻ—āĻŖāĻ¨āĻž āĻ•āĻ°āĻŋ;
  • āĻ†āĻŽāĻ°āĻž āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ¸āĻžā§āĻšāĻžāĻ˛āĻ¨ (āĻĄā§‡āĻŸāĻž āĻ¤ā§ˆāĻ°āĻŋ);
  • āĻ†āĻŽāĻ°āĻž āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻŋ;
  • āĻ†āĻŽāĻ°āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻ•āĻ°āĻŋ - āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž āĻĒā§‚āĻ°āĻŖ āĻšāĻ¯āĻŧ?
  • āĻ†āĻŽāĻ°āĻž āĻāĻŸāĻŋ āĻŦā§ˆāĻœā§āĻžāĻžāĻ¨āĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻŋ, āĻāĻ•āĻŸāĻŋ āĻšāĻžāĻ‡āĻĒā§‹āĻĨāĻŋāĻ¸āĻŋāĻ¸ āĻ•āĻ°āĻŋ;
  • āĻ†āĻŽāĻ°āĻž āĻāĻ‡ āĻ…āĻ¨ā§āĻŽāĻžāĻ¨ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ¸āĻžā§āĻšāĻžāĻ˛āĻ¨.

SRE: āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĨ¤ Go-āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ

āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ HTTP āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°

āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŸāĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻŽāĻ°āĻž āĻ—ā§‹āĻ˛āĻ‚-āĻ āĻāĻ•āĻŸāĻŋ āĻ›ā§‹āĻŸ HTTP āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦāĨ¤ āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ āĻĨā§‡āĻ•ā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ•ā§‹āĻĄ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§‡ āĻāĻ–āĻžāĻ¨ā§‡.

āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻžāĻ¨āĻŸāĻŋ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡ āĻāĻ•āĻŸāĻŋ HTTP āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ¯āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ Postgresql āĻĒā§‹āĻ˛ āĻ•āĻ°ā§‡āĨ¤ āĻ‰āĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ“ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻŽāĻŋāĻĨāĻŋāĻ‰āĻ¸, āĻ¨ā§‹āĻĄ_āĻāĻ•ā§āĻ¸āĻĒā§‹āĻ°ā§āĻŸāĻžāĻ° āĻāĻŦāĻ‚ āĻ—ā§āĻ°āĻžāĻĢāĻžāĻ¨āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

SRE: āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĨ¤ Go-āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ

āĻ¸āĻšāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻŽāĻ°āĻž āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°āĻŋ āĻ¯ā§‡ āĻ…āĻ¨ā§āĻ­ā§‚āĻŽāĻŋāĻ• āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚ (āĻāĻŦāĻ‚ āĻ—āĻŖāĻ¨āĻž āĻ¸āĻ°āĻ˛ā§€āĻ•āĻ°āĻŖ) āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻāĻŦāĻ‚ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻāĻ•āĻ¸āĻžāĻĨā§‡ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡:

SRE: āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĨ¤ Go-āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ

āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°āĻž

āĻāĻ‡ āĻ§āĻžāĻĒā§‡, āĻ†āĻŽāĻ°āĻž āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°āĻŋāĨ¤ āĻ†āĻŽāĻ°āĻž āĻ•āĻŋ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻ›āĻŋ? āĻāĻŸāĻž āĻļā§‡āĻˇ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ†āĻŽāĻ°āĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻœāĻžāĻ¨āĻŋ? āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡, āĻ†āĻŽāĻ°āĻž āĻ•āĻ˛ā§āĻĒāĻ¨āĻž āĻ•āĻ°āĻŦ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ†āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ 10 āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻŦā§‡āĨ¤

В āĻ—ā§āĻ—āĻ˛ āĻāĻ¸āĻ†āĻ°āĻ‡ āĻŦāĻ‡ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ āĻāĻŦāĻ‚ āĻŽāĻĄā§‡āĻ˛āĻŋāĻ‚ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ. āĻ†āĻ¸ā§āĻ¨ āĻāĻ•āĻ‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻŋ āĻāĻŦāĻ‚ āĻŽāĻĄā§‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŋ:

  • āĻ˛ā§‡āĻŸā§‡āĻ¨ā§āĻ¸āĻŋ: 99% āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ 60ms āĻāĻ° āĻ•āĻŽ āĻ¸āĻŽāĻ¯āĻŧā§‡ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤;
  • āĻ–āĻ°āĻš: āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻŸāĻŋ āĻ¨ā§āĻ¯ā§‚āĻ¨āĻ¤āĻŽ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻ…āĻ°ā§āĻĨ āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤ āĻ¯āĻž āĻ†āĻŽāĻ°āĻž āĻŽāĻ¨ā§‡ āĻ•āĻ°āĻŋ āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻ¸āĻ™ā§āĻ—āĻ¤āĻ­āĻžāĻŦā§‡ āĻ¸āĻŽā§āĻ­āĻŦāĨ¤ āĻāĻŸāĻŋ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻŽāĻ°āĻž āĻĨā§āĻ°ā§āĻĒā§āĻŸ āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ• āĻ•āĻ°āĻŋ;
  • āĻ•ā§āĻ¯āĻžāĻĒāĻžāĻ¸āĻŋāĻŸāĻŋ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻ¨āĻŋāĻ‚: āĻ¸āĻžāĻŽāĻ—ā§āĻ°āĻŋāĻ• āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻž āĻ¸āĻš āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋāĻ° āĻ•āĻ¤āĻ—ā§āĻ˛āĻŋ āĻĻā§ƒāĻˇā§āĻŸāĻžāĻ¨ā§āĻ¤ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻ˛ā§‹āĻĄ āĻāĻŦāĻ‚ āĻŦāĻŋāĻ§āĻžāĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻžāĻ—ā§āĻ˛āĻŋ āĻĒā§‚āĻ°āĻŖ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻ¤āĻ—ā§āĻ˛āĻŋ āĻĻā§ƒāĻˇā§āĻŸāĻžāĻ¨ā§āĻ¤ā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻŦā§‡ āĻ¤āĻž āĻŦā§‹āĻāĻž āĻāĻŦāĻ‚ āĻ¨āĻĨāĻŋāĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ…āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž n+1.

āĻ˛ā§‡āĻŸā§‡āĻ¨ā§āĻ¸āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻ›āĻžāĻĄāĻŧāĻžāĻ“ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻĨā§āĻ°ā§āĻĒā§āĻŸ āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ°āĻ­āĻžāĻŦā§‡ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻ•āĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨āĨ¤ SRE SLO āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§‡āĻ° āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻŸāĻŋ āĻ—ā§āĻ°āĻžāĻšāĻ• āĻŦāĻž āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ° āĻ•āĻžāĻ› āĻĨā§‡āĻ•ā§‡ āĻ†āĻ¸ā§‡, āĻĒāĻŖā§āĻ¯ā§‡āĻ° āĻŽāĻžāĻ˛āĻŋāĻ• āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻŦāĻ‚ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻāĻ‡ āĻŦāĻžāĻ§ā§āĻ¯āĻŦāĻžāĻ§āĻ•āĻ¤āĻžāĻŸāĻŋ āĻĒā§āĻ°āĻĨāĻŽ āĻĨā§‡āĻ•ā§‡āĻ‡ āĻ•ā§‹āĻ¨āĻ“ āĻ¸ā§‡āĻŸāĻŋāĻ‚āĻ¸ āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ āĻĒā§‚āĻ°āĻŖ āĻ•āĻ°āĻŦā§‡!

āĻāĻ•āĻŸāĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ° āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡

āĻāĻ•āĻŸāĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ° āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§‡, āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻŽāĻžāĻĒāĻŋāĻ¤ āĻ˛ā§‹āĻĄ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻšāĻŦāĨ¤ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻ“āĻ¯āĻŧā§‡āĻŦ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻžāĻ° āĻ‰āĻĒāĻ° āĻĄā§‡āĻŸāĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻŦā§‡āĨ¤

āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨ āĻ˛ā§‹āĻĄ

āĻāĻ‡ āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ Vegeta āĻĨāĻžāĻŽāĻžāĻ¨ā§‹ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻ¸ā§āĻŸāĻŽ HTTP āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻšāĻžāĻ° āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡:

$ make load-test LOAD_TEST_RATE=50
echo "POST http://localhost:8080" | vegeta attack -body tests/fixtures/age_no_match.json -rate=50 -duration=0 | tee results.bin | vegeta report

āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻ•

āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽā§‡ āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨ā§‡āĻ° āĻ˛ā§‹āĻĄ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻŦā§‡āĨ¤ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ (āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž, āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ˛ā§‡āĻŸā§‡āĻ¨ā§āĻ¸āĻŋ) āĻāĻŦāĻ‚ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ (āĻŽā§‡āĻŽāĻ°āĻŋ, āĻ¸āĻŋāĻĒāĻŋāĻ‡āĻ‰, āĻ†āĻ‡āĻ“āĻĒāĻŋāĻāĻ¸) āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ āĻ›āĻžāĻĄāĻŧāĻžāĻ“, āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻĒā§āĻ°ā§‹āĻĢāĻžāĻ‡āĻ˛āĻŋāĻ‚ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹ āĻšāĻŦā§‡ āĻ¯āĻžāĻ¤ā§‡ āĻŦā§‹āĻāĻž āĻ¯āĻžāĻ¯āĻŧ āĻ•ā§‹āĻĨāĻžāĻ¯āĻŧ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ†āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ¸āĻŋāĻĒāĻŋāĻ‡āĻ‰ āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻ¯āĻŧ āĻšāĻšā§āĻ›ā§‡āĨ¤

āĻĒā§āĻ°ā§‹āĻĢāĻžāĻ‡āĻ˛āĻŋāĻ‚

āĻĒā§āĻ°ā§‹āĻĢāĻžāĻ‡āĻ˛āĻŋāĻ‚ āĻšāĻ˛ āĻāĻ• āĻ§āĻ°āĻŖā§‡āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻ¯āĻž āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ āĻ¯ā§‡ āĻ¯āĻ–āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻšāĻ˛āĻ›ā§‡ āĻ¤āĻ–āĻ¨ CPU āĻ¸āĻŽāĻ¯āĻŧ āĻ•ā§‹āĻĨāĻžāĻ¯āĻŧ āĻ¯āĻžāĻšā§āĻ›ā§‡āĨ¤ āĻāĻŸāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ āĻŋāĻ• āĻ•ā§‹āĻĨāĻžāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ•āĻ¤āĻŸāĻž āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻ¯āĻŧ āĻ•āĻ°ā§‡ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ:

SRE: āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĨ¤ Go-āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ

āĻāĻ‡ āĻĄā§‡āĻŸāĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻˇā§āĻŸ CPU āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¸āĻžā§āĻšāĻžāĻ˛āĻŋāĻ¤ āĻ…āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ•āĻžāĻœ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻĻā§ƒāĻˇā§āĻŸāĻŋ āĻĒā§‡āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ Go (pprof) āĻĒā§āĻ°ā§‹āĻĢāĻžāĻ‡āĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽāĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻŽāĻžāĻ¨ āĻ¸ā§‡āĻŸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻļāĻŋāĻ–āĻž āĻ—ā§āĻ°āĻžāĻĢ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ•āĻ˛ā§āĻĒāĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ†āĻŽāĻŋ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡ āĻĒāĻ°ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻŦāĻ‚ āĻ¸ā§‡āĻŸāĻ†āĻĒ āĻ—āĻžāĻ‡āĻĄ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ•āĻĨāĻž āĻŦāĻ˛āĻŦāĨ¤

āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻš, āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ, āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĨ¤

āĻāĻ•āĻŸāĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻž āĻ¯āĻžāĻ•. āĻ†āĻŽāĻ°āĻž āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¸ā§‡ āĻ¸āĻ¨ā§āĻ¤ā§āĻˇā§āĻŸ āĻ¨āĻž āĻšāĻ“āĻ¯āĻŧāĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ†āĻŽāĻ°āĻž āĻĒāĻžāĻ°āĻĢāĻ°ā§āĻŽ āĻ•āĻ°āĻŦ, āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻŦ āĻāĻŦāĻ‚ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻ•āĻ°āĻŦāĨ¤ āĻĒā§āĻ°āĻĨāĻŽ āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖā§‡āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒā§‡āĻ¤ā§‡ āĻāĻŸāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻšāĻžāĻ°ā§‡ āĻ•āĻŽ āĻ˛ā§‹āĻĄ āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ āĻ•āĻ°āĻž āĻ¯āĻžāĻ•āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ§āĻžāĻĒā§‡ āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚ āĻĢā§āĻ¯āĻžāĻ•ā§āĻŸāĻ° āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ˛ā§‹āĻĄ āĻŦāĻžāĻĄāĻŧāĻžāĻŦ, āĻ¯āĻž āĻ•āĻŋāĻ›ā§ āĻ­āĻŋāĻ¨ā§āĻ¨āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻŦā§‡āĻ›ā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ˛ā§‹āĻĄ āĻŸā§‡āĻ¸ā§āĻŸāĻŋāĻ‚ āĻ°āĻžāĻ¨ āĻ¸āĻžāĻŽāĻžā§āĻœāĻ¸ā§āĻ¯ āĻ•āĻ°āĻž āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžā§āĻšāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ: make load-test LOAD_TEST_RATE=X.

āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ 50āĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§

SRE: āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĨ¤ Go-āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ

āĻ‰āĻĒāĻ°ā§‡āĻ° āĻĻā§āĻŸāĻŋ āĻ—ā§āĻ°āĻžāĻĢā§‡ āĻŽāĻ¨ā§‹āĻ¯ā§‹āĻ— āĻĻāĻŋāĻ¨āĨ¤ āĻ‰āĻĒāĻ°ā§‡āĻ° āĻŦāĻžāĻŽā§‡ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ 50āĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°ā§‡ (āĻāĻŸāĻŋ āĻŽāĻ¨ā§‡ āĻ•āĻ°ā§‡) āĻāĻŦāĻ‚ āĻ‰āĻĒāĻ°ā§‡āĻ° āĻĄāĻžāĻ¨āĻĻāĻŋāĻ•ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧāĨ¤ āĻ‰āĻ­āĻ¯āĻŧ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĻā§‡āĻ–āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¸ā§€āĻŽāĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ†āĻ›āĻŋ āĻ•āĻŋ āĻ¨āĻžāĨ¤ āĻ—ā§āĻ°āĻžāĻĢā§‡ āĻ˛āĻžāĻ˛ āĻ°ā§‡āĻ–āĻž HTTP āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ˛ā§‡āĻŸā§‡āĻ¨ā§āĻ¸āĻŋ 60ms āĻ SLO āĻĻā§‡āĻ–āĻžāĻ¯āĻŧāĨ¤ āĻ˛āĻžāĻ‡āĻ¨āĻŸāĻŋ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ āĻ¯ā§‡ āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ• āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻ¨ā§€āĻšā§‡ āĻ†āĻ›āĻŋāĨ¤

āĻ†āĻ¸ā§āĻ¨ āĻ–āĻ°āĻšā§‡āĻ° āĻĻāĻŋāĻ•āĻŸāĻŋ āĻĻā§‡āĻ–ā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ•:

āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ 10000 āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ / āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋ 50āĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ = 200 āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° + 1

āĻ†āĻŽāĻ°āĻž āĻāĻ–āĻ¨āĻ“ āĻāĻ‡ āĻĒāĻ°āĻŋāĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ¨ āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨.

āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ 500āĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§

āĻ˛ā§‹āĻĄ āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ 500āĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡ āĻĒā§ŒāĻāĻ›āĻžāĻ˛ā§‡ āĻ†āĻ°āĻ“ āĻ†āĻ•āĻ°ā§āĻˇāĻŖā§€āĻ¯āĻŧ āĻœāĻŋāĻ¨āĻŋāĻ¸āĻ—ā§āĻ˛āĻŋ āĻ˜āĻŸāĻ¤ā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°ā§‡:

SRE: āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĨ¤ Go-āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ

āĻ†āĻŦāĻžāĻ°, āĻ‰āĻĒāĻ°ā§‡āĻ° āĻŦāĻžāĻŽ āĻ—ā§āĻ°āĻžāĻĢā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻšā§āĻ›ā§‡āĻ¨ āĻ¯ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āĻ˛ā§‹āĻĄ āĻ°ā§‡āĻ•āĻ°ā§āĻĄ āĻ•āĻ°āĻ›ā§‡āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻŸāĻŋ āĻ¨āĻž āĻšāĻ¯āĻŧ, āĻ¯ā§‡ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋ āĻšāĻ˛āĻ›ā§‡ āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ˛ā§‡āĻŸā§‡āĻ¨ā§āĻ¸āĻŋ āĻ—ā§āĻ°āĻžāĻĢāĻŸāĻŋ āĻ‰āĻĒāĻ°ā§‡āĻ° āĻĄāĻžāĻ¨āĻĻāĻŋāĻ•ā§‡ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤, āĻāĻŸāĻŋ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ āĻ¯ā§‡ āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ 500āĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻĢāĻ˛ā§‡ 25-40ms āĻāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦāĻŋāĻ˛āĻŽā§āĻŦāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ 99āĻ¤āĻŽ āĻĒāĻžāĻ°ā§āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ‡āĻ˛ āĻāĻ–āĻ¨āĻ“ āĻ‰āĻĒāĻ°ā§‡ āĻŦā§‡āĻ›ā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž 60ms SLO-āĻ¤ā§‡ āĻ¸ā§āĻ¨ā§āĻĻāĻ°āĻ­āĻžāĻŦā§‡ āĻĢāĻŋāĻŸ āĻ•āĻ°ā§‡āĨ¤

āĻ–āĻ°āĻšā§‡āĻ° āĻĻāĻŋāĻ• āĻĨā§‡āĻ•ā§‡:

āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ 10000 āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ / āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋ 500āĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ = 20 āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° + 1

āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻāĻ–āĻ¨āĻ“ āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ 1000āĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§

SRE: āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĨ¤ Go-āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ

āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻ˛āĻžā§āĻš! āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ āĻ¯ā§‡ āĻāĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ 1000āĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°ā§‡āĻ›ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ SLO āĻĻā§āĻŦāĻžāĻ°āĻž āĻ˛ā§‡āĻŸā§‡āĻ¨ā§āĻ¸āĻŋ āĻ¸ā§€āĻŽāĻž āĻ˛āĻ™ā§āĻ˜āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ā§ˇ āĻ‰āĻĒāĻ°ā§‡āĻ° āĻĄāĻžāĻ¨āĻĻāĻŋāĻ•ā§‡āĻ° āĻ—ā§āĻ°āĻžāĻĢā§‡ p99 āĻ˛āĻžāĻ‡āĻ¨ā§‡ āĻāĻŸāĻŋ āĻĻā§‡āĻ–āĻž āĻ¯āĻžāĻŦā§‡āĨ¤ p100 āĻ˛āĻžāĻ‡āĻ¨ āĻ…āĻ¨ā§‡āĻ• āĻŦā§‡āĻļāĻŋ āĻšāĻ“āĻ¯āĻŧāĻž āĻ¸āĻ¤ā§āĻ¤ā§āĻŦā§‡āĻ“, āĻĒā§āĻ°āĻ•ā§ƒāĻ¤ āĻŦāĻŋāĻ˛āĻŽā§āĻŦ āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš 60ms āĻāĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻŦā§‡āĻļāĻŋāĨ¤ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋ āĻ†āĻ¸āĻ˛ā§‡ āĻ•ā§€ āĻ•āĻ°ā§‡ āĻ¤āĻž āĻœāĻžāĻ¨āĻ¤ā§‡ āĻĒā§āĻ°ā§‹āĻĢāĻžāĻ‡āĻ˛āĻŋāĻ‚āĻ¯āĻŧā§‡ āĻĄā§āĻŦ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ•āĨ¤

āĻĒā§āĻ°ā§‹āĻĢāĻžāĻ‡āĻ˛āĻŋāĻ‚

āĻĒā§āĻ°ā§‹āĻĢāĻžāĻ‡āĻ˛āĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ 1000 āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡ āĻ˛ā§‹āĻĄ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻŋ, āĻ¤āĻžāĻ°āĻĒāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨ pprof āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋ āĻ•ā§‹āĻĨāĻžāĻ¯āĻŧ CPU āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻ¯āĻŧ āĻ•āĻ°āĻ›ā§‡ āĻ¤āĻž āĻ–ā§āĻāĻœā§‡ āĻŦā§‡āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĄā§‡āĻŸāĻž āĻ•ā§āĻ¯āĻžāĻĒāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡āĨ¤ āĻāĻŸāĻŋ HTTP āĻāĻ¨ā§āĻĄāĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°ā§‡ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ pprof, āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻĒāĻ°, āĻ˛ā§‹āĻĄā§‡āĻ° āĻ…āĻ§ā§€āĻ¨ā§‡, āĻ•āĻžāĻ°ā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻ—ā§āĻ˛āĻŋ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°ā§āĻ¨:

$ curl http://localhost:8080/debug/pprof/profile?seconds=29 > cpu.1000_reqs_sec_no_optimizations.prof

āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻāĻ‡ āĻŽāĻ¤ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡:

$ go tool pprof -http=:12345 cpu.1000_reqs_sec_no_optimizations.prof

SRE: āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĨ¤ Go-āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ

āĻ—ā§āĻ°āĻžāĻĢāĻŸāĻŋ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ āĻ•ā§‹āĻĨāĻžāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ•āĻ¤ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ CPU āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻ¯āĻŧ āĻ•āĻ°ā§‡āĨ¤ āĻĨā§‡āĻ•ā§‡ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻĨā§‡āĻ•ā§‡ āĻŦā§āĻ°ā§‡āĻ¨ā§āĻĄāĻ¨ āĻ—ā§āĻ°ā§‡āĻ—:

X āĻ…āĻ•ā§āĻˇ āĻšāĻ˛ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ• āĻĒā§āĻ°ā§‹āĻĢāĻžāĻ‡āĻ˛ āĻœāĻ¨āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž, āĻŦāĻ°ā§āĻŖāĻžāĻ¨ā§āĻ•ā§āĻ°āĻŽāĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻœāĻžāĻ¨ā§‹ (āĻāĻŸāĻŋ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻ¯āĻŧ), Y āĻ…āĻ•ā§āĻˇ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ•ā§‡āĻ° āĻ—āĻ­ā§€āĻ°āĻ¤āĻž āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ, [āĻļā§€āĻ°ā§āĻˇā§‡] āĻļā§‚āĻ¨ā§āĻ¯ āĻĨā§‡āĻ•ā§‡ āĻ—āĻŖāĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ†āĻ¯āĻŧāĻ¤āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ• āĻĢā§āĻ°ā§‡āĻŽāĨ¤ āĻšāĻ“āĻĄāĻŧāĻž āĻĢā§āĻ°ā§‡āĻŽ, āĻ†āĻ°ā§‹ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ‡ āĻāĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ• āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧ. āĻ‰āĻĒāĻ°ā§‡ āĻ¯āĻž āĻ†āĻ›ā§‡ āĻ¤āĻž āĻ¸āĻŋāĻĒāĻŋāĻ‡āĻ‰āĻ¤ā§‡ āĻšāĻ˛ā§‡ āĻāĻŦāĻ‚ āĻ¨āĻŋāĻšā§‡ āĻ¯āĻž āĻ†āĻ›ā§‡ āĻ¤āĻž āĻšāĻžāĻ‡āĻ˛ā§āĻĄ āĻāĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸāĨ¤ āĻ°āĻ™āĻ—ā§āĻ˛āĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ•āĻŋāĻ›ā§ āĻŦā§‹āĻāĻžāĻ¯āĻŧ āĻ¨āĻž, āĻ¤āĻŦā§‡ āĻĢā§āĻ°ā§‡āĻŽā§‡āĻ° āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āĻ¯ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ˛ā§‹āĻŽā§‡āĻ˛ā§‹āĻ­āĻžāĻŦā§‡ āĻŦā§‡āĻ›ā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤

āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ - āĻ…āĻ¨ā§āĻŽāĻžāĻ¨

āĻŸāĻŋāĻ‰āĻ¨āĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻŽāĻ°āĻž āĻ¨āĻˇā§āĻŸ CPU āĻ¸āĻŽāĻ¯āĻŧ āĻ–ā§āĻāĻœā§‡ āĻŦā§‡āĻ° āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻžāĻ° āĻ‰āĻĒāĻ° āĻĢā§‹āĻ•āĻžāĻ¸ āĻ•āĻ°āĻŦāĨ¤ āĻ†āĻŽāĻ°āĻž āĻ…āĻ•ā§‡āĻœā§‹ āĻ–āĻ°āĻšā§‡āĻ° āĻŦā§ƒāĻšāĻ¤ā§āĻ¤āĻŽ āĻ‰āĻ¤ā§āĻ¸āĻ—ā§āĻ˛āĻŋ āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ•āĻ°āĻŦ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻ¸āĻ°āĻŋāĻ¯āĻŧā§‡ āĻĢā§‡āĻ˛āĻŦāĨ¤ āĻ āĻŋāĻ• āĻ†āĻ›ā§‡, āĻ¯ā§‡ āĻĒā§āĻ°ā§‹āĻĢāĻžāĻ‡āĻ˛āĻŋāĻ‚āĻŸāĻŋ āĻ–ā§āĻŦ āĻ¸āĻ āĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋ āĻ¤āĻžāĻ° āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻ°ā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ āĻŋāĻ• āĻ•ā§‹āĻĨāĻžāĻ¯āĻŧ āĻŦā§āĻ¯āĻ¯āĻŧ āĻ•āĻ°āĻ›ā§‡, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻāĻŸāĻŋ āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŦāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸ā§‹āĻ°ā§āĻ¸ āĻ•ā§‹āĻĄ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡, āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻšāĻžāĻ˛āĻžāĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¯ā§‡ āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ˛āĻ•ā§āĻˇā§āĻ¯ā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻĒā§ŒāĻāĻ›ā§‡āĻ›ā§‡āĨ¤

āĻŦā§āĻ°ā§‡āĻ¨ā§āĻĄāĻ¨ āĻ—ā§āĻ°ā§‡āĻ—ā§‡āĻ° āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻ…āĻ¨ā§āĻ¸āĻ°āĻŖ āĻ•āĻ°ā§‡, āĻ†āĻŽāĻ°āĻž āĻšāĻžāĻ°ā§āĻŸāĻŸāĻŋ āĻ‰āĻĒāĻ°ā§‡ āĻĨā§‡āĻ•ā§‡ āĻ¨ā§€āĻšā§‡ āĻĒāĻĄāĻŧāĻŦāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ˛āĻžāĻ‡āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ• āĻĢā§āĻ°ā§‡āĻŽ (āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ•āĻ˛) āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻĒā§āĻ°āĻĨāĻŽ āĻ˛āĻžāĻ‡āĻ¨ āĻšāĻ˛ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽā§‡āĻ° āĻĒā§āĻ°āĻŦā§‡āĻļ āĻŦāĻŋāĻ¨ā§āĻĻā§, āĻ…āĻ¨ā§āĻ¯ āĻ¸āĻŦ āĻ•āĻ˛ā§‡āĻ° āĻŽā§‚āĻ˛ (āĻ…āĻ¨ā§āĻ¯ āĻ•āĻĨāĻžāĻ¯āĻŧ, āĻ…āĻ¨ā§āĻ¯ āĻ¸āĻŦ āĻ•āĻ˛ā§‡āĻ° āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ•ā§‡ āĻāĻŸāĻŋ āĻĨāĻžāĻ•āĻŦā§‡)āĨ¤ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ˛āĻžāĻ‡āĻ¨ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡āĻ‡ āĻ­āĻŋāĻ¨ā§āĻ¨:

SRE: āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĨ¤ Go-āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ

āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ—ā§āĻ°āĻžāĻĢā§‡ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻ¨āĻžāĻŽā§‡āĻ° āĻ‰āĻĒāĻ° āĻ•āĻžāĻ°ā§āĻ¸āĻžāĻ°āĻŸāĻŋ āĻ˜ā§‹āĻ°āĻžāĻ¨, āĻĄāĻŋāĻŦāĻžāĻ—āĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ•ā§‡ āĻĨāĻžāĻ•āĻž āĻŽā§‹āĻŸ āĻ¸āĻŽāĻ¯āĻŧ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻŦā§‡āĨ¤ HTTPServe āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ›āĻŋāĻ˛ 65% āĻ¸āĻŽāĻ¯āĻŧ, āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽ āĻĢāĻžāĻ‚āĻļāĻ¨ runtime.mcall, mstart и gc, āĻŦāĻžāĻ•āĻŋ āĻ¸āĻŽāĻ¯āĻŧ āĻ—ā§āĻ°āĻšāĻŖ. āĻŽāĻœāĻžāĻ° āĻ˜āĻŸāĻ¨āĻž: āĻŽā§‹āĻŸ āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° 5% DNS āĻĒā§āĻ°āĻļā§āĻ¨ā§‡ āĻŦā§āĻ¯āĻ¯āĻŧ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ:

SRE: āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĨ¤ Go-āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ

āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŸāĻŋ āĻ¯ā§‡ āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻ—ā§āĻ˛āĻŋ āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ•āĻ°ā§‡ āĻ¤āĻž Postgresql-āĻāĻ° āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ—āĻ¤āĨ¤ āĻ•ā§āĻ˛āĻŋāĻ• āĻ•āĻ°ā§āĻ¨ FindByAge:

SRE: āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĨ¤ Go-āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ

āĻŽāĻœāĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻšāĻ˛, āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŸāĻŋ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ āĻ¯ā§‡, āĻ¨ā§€āĻ¤āĻŋāĻ—āĻ¤āĻ­āĻžāĻŦā§‡, āĻ¤āĻŋāĻ¨āĻŸāĻŋ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ‰āĻ¤ā§āĻ¸ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻž āĻŦāĻŋāĻ˛āĻŽā§āĻŦ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡: āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ–ā§‹āĻ˛āĻž āĻāĻŦāĻ‚ āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°āĻž, āĻĄā§‡āĻŸāĻž āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°āĻžāĨ¤ āĻ—ā§āĻ°āĻžāĻĢāĻŸāĻŋ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ āĻ¯ā§‡ āĻĄāĻŋāĻāĻ¨āĻāĻ¸ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§, āĻ–ā§‹āĻ˛āĻž āĻāĻŦāĻ‚ āĻŦāĻ¨ā§āĻ§ āĻ¸āĻ‚āĻ¯ā§‹āĻ—āĻ—ā§āĻ˛āĻŋ āĻŽā§‹āĻŸ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ°ā§€ āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻĒā§āĻ°āĻžāĻ¯āĻŧ 13% āĻ¸āĻŽāĻ¯āĻŧ āĻ¨ā§‡āĻ¯āĻŧāĨ¤

āĻ…āĻ¨ā§āĻŽāĻžāĻ¨: āĻĒā§āĻ˛āĻŋāĻ‚ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ—āĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻƒāĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻĢāĻ˛ā§‡ āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• HTTP āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻšā§āĻ°āĻžāĻ¸ āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤, āĻ¯āĻž āĻ‰āĻšā§āĻšāĻ¤āĻ° āĻĨā§āĻ°ā§āĻĒā§āĻŸ āĻāĻŦāĻ‚ āĻ•āĻŽ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§‡āĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ.

āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸ā§‡āĻŸ āĻ†āĻĒ - āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž

āĻ†āĻŽāĻ°āĻž āĻ¸ā§‹āĻ°ā§āĻ¸ āĻ•ā§‹āĻĄ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻŋ, āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ Postgresql-āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ¸āĻ°āĻžāĻ¨ā§‹āĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°ā§āĻ¨āĨ¤ āĻĒā§āĻ°āĻĨāĻŽ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻĒā§āĻ˛ āĻ†āĻŦā§‡āĻĻāĻ¨ āĻ¸ā§āĻ¤āĻ°ā§‡āĨ¤ āĻāĻ‡ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ¯āĻŧ āĻ†āĻŽāĻ°āĻž āĻāĻŸāĻž āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻž āĻ¯āĻžāĻ• āĻ¯āĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯ sql āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻĒā§āĻ˛āĻŋāĻ‚:

db, err := sql.Open("postgres", dbConnectionString)
db.SetMaxOpenConns(8)

if err != nil {
   return nil, err
}

āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻš, āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ, āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ

āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ 1000 āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻŸāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°ā§‡, āĻāĻŸāĻž āĻ¸ā§āĻĒāĻˇā§āĻŸ āĻ¯ā§‡ p99-āĻāĻ° āĻ˛ā§‡āĻŸā§‡āĻ¨ā§āĻ¸āĻŋ āĻ˛ā§‡āĻ­ā§‡āĻ˛ 60ms āĻāĻ° SLO āĻ¸āĻš āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¯āĻŧ āĻĢāĻŋāĻ°ā§‡ āĻāĻ¸ā§‡āĻ›ā§‡!

āĻ–āĻ°āĻš āĻ•āĻŋ?

āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ 10000 āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ / āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋ 1000āĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ = 10 āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° + 1

āĻāĻ° āĻ†āĻ°āĻ“ āĻ­āĻžāĻ˛ā§‹ āĻ•āĻ°āĻž āĻ¯āĻžāĻ•!

āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ 2000āĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§

SRE: āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĨ¤ Go-āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ

āĻ˛ā§‹āĻĄ āĻĻā§āĻŦāĻŋāĻ—ā§āĻŖ āĻ•āĻ°āĻž āĻāĻ•āĻ‡ āĻœāĻŋāĻ¨āĻŋāĻ¸ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ, āĻ‰āĻĒāĻ°ā§‡āĻ° āĻŦāĻžāĻŽ āĻ—ā§āĻ°āĻžāĻĢāĻŸāĻŋ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ āĻ¯ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ 2000āĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°ā§‡, p100 60ms āĻāĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻ•āĻŽ, p99 SLO-āĻ•ā§‡ āĻ¸āĻ¨ā§āĻ¤ā§āĻˇā§āĻŸ āĻ•āĻ°ā§‡āĨ¤

āĻ–āĻ°āĻšā§‡āĻ° āĻĻāĻŋāĻ• āĻĨā§‡āĻ•ā§‡:

āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ 10000 āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ / āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋ 2000āĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ = 5 āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° + 1

āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ 3000āĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§

SRE: āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĨ¤ Go-āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ

āĻāĻ–āĻžāĻ¨ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋ 3000ms āĻāĻ° āĻ•āĻŽ p99 āĻ˛ā§‡āĻŸā§‡āĻ¨ā§āĻ¸āĻŋ āĻ¸āĻš 60āĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ SLO āĻ˛āĻ™ā§āĻ˜āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž, āĻāĻŦāĻ‚ āĻ–āĻ°āĻš āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§‚āĻĒ āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ:

āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ 10000 āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ / āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋ 3000 āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ = 4 āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° + 1 (āĻ˛ā§‡āĻ–āĻ• āĻ°āĻžāĻ‰āĻ¨ā§āĻĄ āĻ†āĻĒ āĻ•āĻ°ā§‡āĻ›ā§‡āĻ¨, āĻĒā§āĻ°āĻžāĻ¯āĻŧ. āĻ…āĻ¨ā§āĻŦāĻžāĻĻāĻ•)

āĻāĻ° āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻ†āĻ°ā§‡āĻ•āĻŸāĻŋ āĻ°āĻžāĻ‰āĻ¨ā§āĻĄ āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻž āĻ¯āĻžāĻ•.

āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ - āĻ…āĻ¨ā§āĻŽāĻžāĻ¨

āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ 3000 āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻĄāĻŋāĻŦāĻžāĻ— āĻ•āĻ°āĻžāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻ•āĻ°āĻŋ:

SRE: āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĨ¤ Go-āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ

āĻāĻ–āĻ¨āĻ“ 6% āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§‡ āĻŦā§āĻ¯āĻ¯āĻŧ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻĒā§āĻ˛ āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻžāĻ° āĻĢāĻ˛ā§‡ āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻĒāĻ¨āĻŋ āĻāĻ–āĻ¨āĻ“ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻšā§āĻ›ā§‡āĻ¨ āĻ¯ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ¤ā§ˆāĻ°āĻŋāĻ° āĻ•āĻžāĻœ āĻšāĻžāĻ˛āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻšā§āĻ›ā§‡āĨ¤

āĻ…āĻ¨ā§āĻŽāĻžāĻ¨: āĻ¸āĻ‚āĻ¯ā§‹āĻ—āĻ—ā§āĻ˛āĻŋ, āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ˛ā§‡āĻ° āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ¸āĻ¤ā§āĻ¤ā§āĻŦā§‡āĻ“, āĻāĻ–āĻ¨āĻ“ āĻŦāĻžāĻĻ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻāĻŦāĻ‚ āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¤āĻžāĻ‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋāĻ•ā§‡ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ā§ˇ āĻĒā§āĻ˛ āĻ†āĻ•āĻžāĻ°ā§‡ āĻŽā§āĻ˛āĻ¤ā§āĻŦāĻŋ āĻĨāĻžāĻ•āĻž āĻ¸āĻ‚āĻ¯ā§‹āĻ—ā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻž āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ¤ā§ˆāĻ°āĻŋāĻ¤ā§‡ āĻ¯ā§‡ āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻ¯āĻŧ āĻ•āĻ°ā§‡ āĻ¤āĻž āĻ•āĻŽāĻŋāĻ¯āĻŧā§‡ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§‡ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤.

āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸ā§‡āĻŸ āĻ†āĻĒ - āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž

āĻ‡āĻ¨ā§āĻ¸āĻŸāĻ˛ āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻ›āĻŋ MaxIdleCons āĻĒā§āĻ˛ā§‡āĻ° āĻ†āĻ•āĻžāĻ°ā§‡āĻ° āĻ¸āĻŽāĻžāĻ¨ (āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻāĻ–āĻžāĻ¨ā§‡):

db, err := sql.Open("postgres", dbConnectionString)
db.SetMaxOpenConns(8)
db.SetMaxIdleConns(8)
if err != nil {
   return nil, err
}

āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻš, āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ, āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ

āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ 3000āĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§

SRE: āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĨ¤ Go-āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ

p99 āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯āĻ­āĻžāĻŦā§‡ āĻ•āĻŽ p60 āĻ¸āĻš 100ms āĻāĻ° āĻ•āĻŽ!

SRE: āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĨ¤ Go-āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ

āĻļāĻŋāĻ–āĻž āĻ—ā§āĻ°āĻžāĻĢ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ āĻ¯ā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ—āĻŸāĻŋ āĻ†āĻ° āĻ˛āĻ•ā§āĻˇāĻŖā§€āĻ¯āĻŧ āĻ¨āĻ¯āĻŧ! āĻāĻ° āĻ†āĻ°ā§‹ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻšā§‡āĻ• āĻ•āĻ°āĻž āĻ¯āĻžāĻ• pg(*conn).query — āĻ†āĻŽāĻ°āĻž āĻāĻ–āĻžāĻ¨ā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ•āĻ°āĻŋ āĻ¨āĻžāĨ¤

SRE: āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĨ¤ Go-āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ

āĻ‰āĻĒāĻ¸āĻ‚āĻšāĻžāĻ°

āĻ—ā§āĻ°āĻžāĻšāĻ•ā§‡āĻ° āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻž āĻāĻŦāĻ‚ āĻ…-āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ°ā§€ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž āĻĒā§‚āĻ°āĻŖ āĻšāĻšā§āĻ›ā§‡ āĻ¤āĻž āĻŦā§‹āĻāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤ āĻ—ā§āĻ°āĻžāĻšāĻ•ā§‡āĻ° āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖā§‡āĻ° āĻ¤ā§āĻ˛āĻ¨āĻž āĻ•āĻ°ā§‡ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻ•ā§‹āĻ¨āĻŸāĻŋ āĻ—ā§āĻ°āĻšāĻŖāĻ¯ā§‹āĻ—ā§āĻ¯ āĻāĻŦāĻ‚ āĻ•ā§‹āĻ¨āĻŸāĻŋ āĻ¨āĻ¯āĻŧ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ Go āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻ¤ā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻļāĻ•ā§āĻ¤āĻŋāĻļāĻžāĻ˛ā§€ āĻŸā§āĻ˛ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻ•āĻ°ā§‡ āĻ¯āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĻ•ā§‡ āĻ¸āĻšāĻœ āĻāĻŦāĻ‚ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸āĻ¯ā§‹āĻ—ā§āĻ¯ āĻ•āĻ°ā§‡ āĻ¤ā§‹āĻ˛ā§‡āĨ¤

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨