Skip to content

Instantly share code, notes, and snippets.

View Barbayar's full-sized avatar

Barbayar Dashzeveg Barbayar

View GitHub Profile
@Barbayar
Barbayar / xorg.conf
Created September 5, 2013 19:47
Kohjinsha SA1F00
Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "Files"
ModulePath "/usr/lib/xorg/modules"
FontPath "/usr/share/fonts/X11/misc"
@Barbayar
Barbayar / .vimrc
Last active December 11, 2019 05:26
" fixes arrow keys' problem
set nocompatible
" fixes backspace/delete key problem
set backspace=2
" shows line number
set number
" shows filename on title
@Barbayar
Barbayar / hanoi.c
Created September 12, 2014 06:55
Tower of Hanoi
#include <stdio.h>
void hanoi(int src, int dest, int n) {
int spare = 3 - src - dest;
if (n == 1) {
printf("%d->%d\n", src, dest);
return;
}
@Barbayar
Barbayar / 事前準備.md
Last active August 29, 2015 14:06
ISUCON 2014

Server Tuning

  • Reverse Proxy ашиглаж static data-уудыг cache хийх
  • Apache-ын оронд nginx гэх мэт, alternative web server ашиглах
  • Хэрэггүй process-уудыг зогсоож, resource чөлөөлөх

RDBMS Optimization

  • Хэрэгтэй index-үүдийг нэмж, хэрэггүй index-үүдийг хасах
  • Зөв engine-ийг сонгох
  • SQL optimization
@Barbayar
Barbayar / gist:a3f619354f37303b5de3
Created September 26, 2014 04:47
redis.conf.sample
daemonize yes
pidfile /var/run/redis.pid
logfile /var/log/redis.log
port 6379
bind 127.0.0.1
timeout 300
loglevel notice
@Barbayar
Barbayar / Solution1.md
Last active August 29, 2015 14:06
ISUCON 2013

Ерөнхий арга

Эхлээд MySQL дээрх бүх өгөгдлийг өөр дээрээ хадгална. Дараа нь бүх SELECT, INSERT үүдэд харгалзах function уудыг бичих.

Шинээр бичигдэх функцууд

  • SELECT count(*) AS total FROM memos WHERE is_private=0 буюу public memo-ын тоо
  • SELECT * FROM memos WHERE is_private=0 ORDER BY created_at DESC, id DESC LIMIT 100 буюу public memo-оос хэсэгчлэн таслах
  • SELECT username FROM users WHERE id= буюу хэрэглэгчийн id-аас хэрэглэгчийн нэрийг олох
  • SELECT id, username, password, salt FROM users WHERE username=? буюу хэрэглэгчийн нэрээр хэрэглэгчийн мэдээллийг олох
  • UPDATE users SET last_access=now() WHERE id=? буюу хэрэглэгчийн сүүлд холбогдсон цагийг шинэчлэх. Энэ хэрэгтэй юу?
  • SELECT id, content, is_private, created_at, updated_at FROM memos WHERE user=? ORDER BY created_at DESC буюу хэрэглэгчийн id-аар memo буцаах
@Barbayar
Barbayar / AWSEC2NFS.md
Last active August 29, 2015 14:06
AWS EC2 server дээр NFS суулган тохируулах

AWS Security Group

TCP

2049 болон 111

UDP

Бүх порт буюу 0 - 65535

Server

Хэрэгтэй package-үүдийг суулгах

yum install nfs-utils rpcbind

Тохиргоо хийх

@Barbayar
Barbayar / ISUCON4.md
Last active August 29, 2015 14:06
ISUCON 4

Query List

             'SELECT COUNT(1) AS failures FROM login_log WHERE ' +
                'user_id = ? AND id > IFNULL((select id from login_log where ' +
                'user_id = ? AND succeeded = 1 ORDER BY id DESC LIMIT 1), 0);',
            'SELECT COUNT(1) AS failures FROM login_log WHERE ' +
 'ip = ? AND id &gt; IFNULL((select id from login_log where ip = ? AND ' +
@Barbayar
Barbayar / app.js
Created September 28, 2014 17:10
[ISUCON 4] [LAST VERSION]
var async = require('async');
var bodyParser = require('body-parser');
var crypto = require('crypto');
var express = require('express');
var session = require('express-session');
var strftime = require('strftime');
var mysql = require('mysql');
var app = express();
var fs = require('fs');
@Barbayar
Barbayar / Instruction.md
Last active August 29, 2015 14:07
Buffalo WHR-HP-G300N дээр OpenVPN суулгах

Эхлэхийн өмнө

WHR-HP-G300N-ын үндсэн flash memory нь 4MB тул, OpenVPN суулгахад хүрэлцэхгүй юм. Үндсэн санах ой нь хэдийгээр бага ч гэсэн, түр санах ой нь хангалттай том тул, түр санах ой дээр суулгах боломжтой. Түр санах ой тул, router унтрах үед буцаад устана. Тийм болохоор start хийх үед хэрэгтэй файлуудыг татан авч суулгах script хэрэг болох юм.
Эх заавар(Орос хэл дээр): http://habrahabr.ru/post/211174/

Орчин

Бэлдэх