검색버튼을 눌러 powershell을 찾는다.


powershell을 바로 실행하지 않고 powershell 아이콘 위에서 오른쪽 마우스 클릭하고  



"Run as Administrator"을 실행한다.

Posted by 김용환 '김용환'

보니까.ci 소요 시간이 10분이내가 적절하다고 보는 분들이 많았다..



https://semaphoreci.com/blog/2017/03/02/what-is-proper-continuous-integration.html


https://semaphoreci.com/blog/2017/03/16/measure-and-improve-your-ci-speed.html


https://martinfowler.com/bliki/ContinuousIntegrationCertification.html


https://www.google.co.kr/search?q=ten+minutes+continuous+integration&oq=ten+minutes+continuous+integration




어떻게든 ci 속도를 10분으로.. 고민해야된다..




내가 예전에 진행했던 3000개 테스팅에 대한 CI 속도는 10분이내였다.


Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례) from knight1128


Posted by 김용환 '김용환'

go 언어 gc 관련 소개 자료이다.


https://blog.golang.org/ismmkeynote



좋은 자료는 다음과 같다. 


http://www.cs.ucsb.edu/~ckrintz/racelab/gc/papers/ 에서 dijkstra의 tri-color 알고리즘(http://www.cs.ucsb.edu/~ckrintz/racelab/gc/papers/dijkstra-on-the-fly.pdf)


optimizing java 책


gc faq

https://www.iecc.com/gclist/GC-algorithms.html







'golang' 카테고리의 다른 글

go 언어의 gc 소개 자료.  (0) 2018.07.19
[golang] 고루틴(go routine) 예제  (0) 2017.09.08
[golang] 매개 변수 받기  (0) 2017.09.08
[golang] 에러(error) 예제  (0) 2017.09.07
[golang] defer 예제  (0) 2017.09.07
[golang] interface(인터페이스) 예제  (0) 2017.09.06
Posted by 김용환 '김용환'

mvnw 설치하기

general java 2018.07.11 20:25


mvnw(gradlew와 비슷한 툴)를 실행하는 방법이다.


먼저 mvn을 먼저 설치하고 다음 커맨드를 실행한다.


$ mvn -N io.takari:maven:wrapper -Dmaven=3.5.3


메이븐 버전은 항상 고려한다.

https://maven.apache.org/docs/ 




패키징 한다. 스프링 부트의 경우 설정에 따라서 데몬 까지 한번에 실행될 수 있다. 


$ ./mvnw clean package


Posted by 김용환 '김용환'




kafka에서 retention.ms 수정하는 방법은 다음 예처럼 간단한다. 


$ ./bin/kafka-topics.sh  --create  --zookeeper zkserver -replication-factor 1 --partitions 1 --topic samuel.test


$ ./bin/kafka-topics.sh  --describe --zookeeper zkserver --topic samuel.test

Topic:samuel.test PartitionCount:1 ReplicationFactor:1 Configs:

Topic: samuel.test Partition: 0 Leader: 25 Replicas: 25 Isr: 25

$ ./bin/kafka-topics.sh --zookeeper zkserver --alter --topic samuel.test --config retention.ms=86400000



$ ./bin/kafka-topics.sh  --describe --zookeeper zkserver --topic samuel.test

Topic:samuel.test PartitionCount:1 ReplicationFactor:1 Configs:retention.ms=86400000

Topic: samuel.test Partition: 0 Leader: 25 Replicas: 25 Isr: 25

Posted by 김용환 '김용환'


TSDB에서 다음과 같은 에러가 발생했다.

(기본 설정에는 채널 사이즈가 정해져 있지 않다.)


net.opentsdb.tsd.ConnectionManager$ConnectionRefusedException: Channel size (201) exceeds total 



connection limit(200), 즉 채널 사이즈가 작아서 발생한 것이다.



설정을 보면 200으로 되어 있다.


# Sets the maximum number of connections a TSD will handle, additional connections are immediately closed. (from 2.3)

tsd.core.connections.limit = 200




이를 큰 값으로 (예, 500)수정하면 해당 트래픽 상황에서는 더 이상 문제가 생기지 않는다.





Posted by 김용환 '김용환'


구글의 public dns가 8.8.8.8만 있는 줄 알았는데.. 8.8.4.4도 있었다.  역시 위키를 봐야..... 



https://en.wikipedia.org/wiki/Google_Public_DNS


Google Public DNS operates recursive name servers for public use at the IP addresses 8.8.8.8 and 8.8.4.4 for IPv4 service, and 2001:4860:4860::8888 and 2001:4860:4860::8844, for IPv6access.[5][6]

Posted by 김용환 '김용환'

grafana에서 특정 metric을 downsample을 1m으로 하면 잘 보이는 장점이 있다.

그러나 해당 메트릭 패널이 많이 모인 dashboard에서는 당연히 DataSource(예, tsdb)가 영향을 받을 수 있다. 

따라서 auto downsampling을 하는 게 좋다.

자세한 내용은 아래를 참고한다.

https://railsadventures.wordpress.com/2015/07/17/advanced-grafana-using-automatic-intervals/


Posted by 김용환 '김용환'




ansible에 lineinfile(https://docs.ansible.com/ansible/latest/modules/lineinfile_module.html)이라는 모듈이 있다.



- name: replace config

  become: true

  lineinfile:

    path: /usr/local/zookeeper/conf/zoo.conf

    regexp: '^#maxClientCnxns'

    line: 'maxClientCnxns'






Posted by 김용환 '김용환'




리눅스에서 일반 유저가 사용하지 못하는 0~1023 포트를 시스템(system)포트 또는 잘 알려진(well-known)  포트 라 한다.

1024 포트부터는 등록된(registered) 포트라 한다.




그리고 통신 프로그래밍(http)에서처럼 잠깐 쓰는 포트를 임시(ephemeral) 포트라 한다.




https://en.wikipedia.org/wiki/Port_(computer_networking)


The well-known ports (also known as system ports) are those from 0 through 1023.


The registered ports are those from 1024 through 49151.



https://en.wikipedia.org/wiki/Ephemeral_port


An ephemeral port is a short-lived transport protocol port for Internet Protocol (IP) communications.


Posted by 김용환 '김용환'