{"id":19463824,"url":"https://github.com/kasworld/massecho","last_synced_at":"2026-06-19T05:31:57.316Z","repository":{"id":146942205,"uuid":"313839492","full_name":"kasworld/massecho","owner":"kasworld","description":"simple echo server for many connection support","archived":false,"fork":false,"pushed_at":"2021-02-06T06:45:42.000Z","size":207,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-25T13:32:03.266Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kasworld.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-18T06:08:53.000Z","updated_at":"2021-02-06T06:45:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"f7c283d5-68c3-473c-a9d0-e3aae3c165ff","html_url":"https://github.com/kasworld/massecho","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kasworld/massecho","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kasworld%2Fmassecho","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kasworld%2Fmassecho/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kasworld%2Fmassecho/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kasworld%2Fmassecho/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kasworld","download_url":"https://codeload.github.com/kasworld/massecho/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kasworld%2Fmassecho/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34519049,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-19T02:00:06.005Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T18:12:23.539Z","updated_at":"2026-06-19T05:31:57.296Z","avatar_url":"https://github.com/kasworld.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# massive echo server\n\n\ngo 언어로 만든 서버에서 64K connection 만들어 보기\n재미삼아 만들어본 프로젝트입니다. \n\n https://github.com/kasworld/massecho\n\ntcp연결이나 gorilla websocket을 사용해서 테스트 가능합니다. \n\n\n\n테스트 전에 준비해야 할것이 대규모의 connection을 테스트 하기위해선 몇가지의 제한을 넘어야 합니다. \n\n1. OS에서 열수있는 파일수의 제한 \n\n2. OS에서 client socket 제한 \n\n윈도우즈가 주 개발 환경인 상황에서 linux 테스트를 위해 설치한 WSL2 와 virtualbox의 ubuntu에서는 openfile 수의 제한을 올릴수가 없습니다. \n\n( 아니면 방법을 못찾은 듯)\n\nubuntu를 설치한 노트북에선 같은 방법으로 잘되는 것으로 봐선 그냥 막아둔듯 합니다. \n\nlinux에서 파일 수 제한을 올리는 방법은 \n\n/etc/security/limits.conf 내용에 \n\n* soft     nofile         999999   \n\n* hard     nofile         999999\n\nroot soft     nofile         999999   \n\nroot hard     nofile         999999\n\n를 추가하면 됩니다. \n\n\nllinux에서 client socket수를 늘리는 것은  \n\n파일 이름은 적당히 정해주면 됩니다. readme에 의하면 local.conf를 추천 하더군요. \n\n/etc/sysctl.d/local.conf 파일 내에 \n\nnet.ipv4.ip_local_port_range = 1024    65535\n\nnet.core.somaxconn = 65535\n\nfs.file-max = 999999\n\n\nwindows에서는 https://docs.microsoft.com/en-us/troubleshoot/windows-client/networking/connect-tcp-greater-than-5000-error-wsaenobufs-10055\n\n를 참고해서\n\n레지스트리 에디터로 \n\nHKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\n\nValue Name: MaxUserPort\nValue Type: DWORD Value data: 65534\n\n를 설정하면 됩니다.\n\n\n\nlinux / windows 공히 재시작은 필수 입니다. \n\n\n\n2020-11-25 업데이트 \n\nAMD Ryzen 3700X (8c16t) 에서 websocket / tcp 연결 모두 64000 connection 성공했습니다.\n\n이상하게 제가 만든 tcp connection이 gorilla websocket 보다 느려서 자존심 상해 하고 있었는데 오늘 원인을 찾아 수정했습니다. \n\n이젠  tcp connection이 아주 조금 더 빠릅니다. ^^ \n\n그밖에도 genprotocol이 만드는 코드쪽에 성능과 사용 편의성 향상을 위한 코드 수정들이 있었습니다. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkasworld%2Fmassecho","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkasworld%2Fmassecho","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkasworld%2Fmassecho/lists"}