お知らせ

現在サイトのリニューアル作業中のため、表示が崩れているページが存在することがあります。
2025/09/10 11:05 技術::AI

久々にPC構成を大刷新してから三ヶ月ほど経過しているが、ローカルLLMを叩いたときのパフォーマンスが前回と比べてどれほど上がるか計測してみた。

環境の現新比較

デバイス 前回 今回
CPU Intel Core i7 13700 Intel Core Ultra 7 265F
GPU GeForce RTX 4070 Ti GeForce RTX 5070 Ti
MEM Crucial Ballistix BL2K16G32C16U4B(DDR4-3200 16GB) * 4 Crucial CT2K16G56C46U5(DDR5-5600 16GB) * 4
M/B ASUS TUF GAMING Z790-PLUS D4 ASRock Z890 Pro RS

ベンチマーク結果

前回はストップウォッチで計測していたが、今回はOpenWebUIのメタ情報から確認した。

gpt-oss:20b

指標
response_token/s 120.74
prompt_token/s 255.92
total_duration 22796593800
load_duration 11155098300
prompt_eval_count 73
prompt_tokens 73
prompt_eval_duration 285245200
eval_count 1371
completion_tokens 1371
eval_duration 11355103800
approximate_total 22s
total_tokens 1444

今回新規で追加。なんかこいつが標準っぽいので測ってみた。

gemma3:27b

指標
response_token/s 10.65
prompt_token/s 39.72
total_duration 85295369100
load_duration 4291682600
prompt_eval_count 13
prompt_tokens 13
prompt_eval_duration 327282600
eval_count 859
completion_tokens 859
eval_duration 80674730800
approximate_total 1m25s
total_tokens 872

前回は出力に3分半程度かかっていたが、今回は一分半程度と、良好な結果となった。

lucas2024/mistral-nemo-japanese-instruct-2408:q8_0

指標
response_token/s 51.88
prompt_token/s 127.3
total_duration 14512642900
load_duration 2966192400
prompt_eval_count 17
prompt_tokens 17
prompt_eval_duration 133547400
eval_count 592
completion_tokens 592
eval_duration 11411474600
approximate_total 14s
total_tokens 609

前回は出力に1分程度かかっていたが、今回は14秒程度と、非常に良好な結果となった。

qwen3:30b

指標
response_token/s 27.49
prompt_token/s 57.74
total_duration 134732866900
load_duration 64763725000
prompt_eval_count 14
prompt_tokens 14
prompt_eval_duration 242451700
eval_count 1917
completion_tokens 1917
eval_duration 69724445400
approximate_total 2m14s

今回新規で追加。悪くない品質で、そこそこ早いのでこれは良さそうだ。

qwen3:32b

指標
response_token/s 5.66
prompt_token/s 18.49
total_duration 332234237600
load_duration 9168679700
prompt_eval_count 14
prompt_tokens 14
prompt_eval_duration 757307500
eval_count 1823
completion_tokens 1823
eval_duration 322305287600
approximate_total 5m32s
total_tokens 1837

今回新規で追加。流石に秒間5.66トークンは厳しい。

雑感

前回と比べるとかなり高速化されており、生成速度だけを見れば十分実用ラインに上がっていているように感じた。しかし回答の品質がそこまでよくなく、そのままでは使えないと感じた。恐らくRAGなどとして使えるようにカスタムしてやっと使えてくるみたいなところがあるのだろうか?

実用性で見ると、日本語文書作成ではgemma3:27bが一番よさそうに思えた。これはqwen3シリーズは単純な質問では結構いい感じなのだが、複雑な条件を付けると期待通りの結果を出してくれなかったからだ。lucas2024/mistral-nemo-japanese-instruct-2408:q8_0も、一見よさそうに見えるがよろしくない発言はできないように細工されているようで、微妙に感じた。

何はともあれ、現実的な速度でローカルLLMが動くようになったのはうれしい。

2025/09/09 09:56 ネットワーク::IPv6

確認環境

NICはともに一つのみ。

  • Windows 11 Pro 24H2
  • Ubuntu 24.04.3 LTS

Windows

NICのIPv6アドレス(GUA)を取得する

コントロールパネルから取得
  1. コントロールパネル→ネットワークと共有センターを開く
  2. イーサネット→詳細を開く
  3. IPv6アドレスと書かれているのがGUA
コマンドプロンプトで取得

ipconfigを叩き、「IPv6 アドレス」と書かれているものがGUA

Powershellで取得
(ipconfig | Select-String -Pattern "IPv6 アドレス(?: .)+: (.+)").Matches.Groups[1].Value

Ubuntu

# perl版
ip -6 addr | grep 'global dynamic' | perl -ale '$F[1] =~ /^([^\/]+)/; print $1;'

# awk版
ip -6 addr | grep 'global dynamic' | awk '{ split($2, a, "/"); print a[1] }'

Windows標準のOpenSSHを利用してSSHDを立てる方法。

SSHサーバーをインストールする

20分くらいかかるので、気長に待つ。

# 有効なバージョンの確認
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
# インストール
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

SSHDサービスを構成する

# SSHDサービスの開始
Start-Service sshd
# 自動起動に設定
Set-Service -Name sshd -StartupType 'Automatic'

# 構成状況の確認
Get-Service -Name sshd
(Get-Service -Name "sshd").StartType

SSHDを鍵認証できるように設定する

%programdata%\ssh\sshd_configに設定ファイルがあるので、これを触る。

Ubuntuと同じOpenSSHであるため、設定方法は基本的に過去に書いたSSHDの設定方法と同じだが、管理者であればAuthorizedKeysFileのコメントを外す必要はない。

管理者である場合、authorized_keysadministrators_authorized_keysというファイル名にして%programdata%\sshに置く。

書き換えたらRestart-Service sshdで再起動する。

上手く繋がらない場合は、Stop-Service sshdでサービスを止めたうえでsshd.exe -ddd -eで直に起動するとデバッグログが見れるので参考にする。

ファイアーウォールへの穴開け

  1. コントロールパネル→Windows Defender ファイアウォール→詳細設定を開く
  2. 受信の規則にOpenSSHが登録されているが、ポート番号が変更不能なため削除する
  3. 次のコマンドを流し、規則を作りなおす

    New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort <ポート番号>
    
2025/09/07 11:24 ジャンル::自作PC

Noctuaのヒートシンクに素手で触れるとめちゃくちゃ指紋が付いてきたなく見えるので、それを除去していく。

こういう指紋汚れを取る。

指紋が付いたばかりのケース

無水エタノールを含ませたティッシュなどで拭うと簡単に取れる。

これは指紋が付いた直後に拭いたときのもの。

指紋が付いて数年経過したケース

無水エタノールで拭いてもほとんど取れない場合は、食器洗い用中性洗剤をティッシュなどにつけ、原液のままま強めにこすると取れやすい。

そのままだと洗剤が残ってしまうため、最後は水拭きして洗剤を取り去る。

洗浄前 洗浄後

これは5年ほど積もり積もった指紋の山だが、大分綺麗になったと思う。写真では判らないがよく見ると完全には取り切れていない。

Windowsノートに課題を長らく感じており、Ubuntuにしたら改善するのではないかという閃きでやってみたログ。

解決したかった課題

  • 120GB/256GBとストレージを食いすぎている
  • メモリが16GBしかなく、WSLをまともに使えない
  • 発熱が酷い
  • 電源を落として放置してると一週間でバッテリーが空になる
    • 高速スタートアップとか、電気を食いそうなのは軒並みOFFにしているつもりなのだが…

目指す環境

  • Windows 11っぽいデスクトップ環境
  • VSCodeを使った簡単なWeb開発や、Markdownライティングが可能
  • SSHで任意のサーバーに接続できる
  • PHPとNode.jsが動く
  • Xfce4を使った軽量なデスクトップ
  • スクショが撮れる
  • リサイズやモザイク、トリミングなどの簡単な画像編集が出来る

対象端末

NEC Lavie PC-GN20D72DYEDYH2YAA

環境構築

Ubuntuの入手とインストール

  1. Ubuntu公式からAMD64向けのイメージをダウンロード
  2. RufusでUSBメモリに焼く
  3. ノートPCにUSBメモリを挿す
  4. ノートPCを起動しF2を連打
  5. BIOSからUbuntuの入ったUSBを起動
  6. 普通にインストールする

ブラウザとVSCodeの導入

  1. Edgeのdebを落としてきてインストール

    sudo apt install ./microsoft-edge-stable_139.0.3405.125-1_amd64.deb
    
  2. アプリセンターからFirefoxを消す

  3. VSCodeのdebを落としてきてインストール

    sudo apt install ./code_1.103.2-1755709794_amd64.deb
    

VSCodeの設定

拡張機能のインストール

普段使ってるマシンで拡張機能のインストールコマンドを生成

code --list-extensions | grep -E -v 'powershell|wsl' | perl -ne 'print "code --install-extension $_"'

結果をノートPC側に流す

code --install-extension 13xforever.language-x86-64-assembly
code --install-extension 42crunch.vscode-openapi
code --install-extension bmewburn.vscode-intelephense-client
code --install-extension dbaeumer.vscode-eslint
code --install-extension docker.docker
code --install-extension eamodio.gitlens
code --install-extension esbenp.prettier-vscode
code --install-extension golang.go
code --install-extension gruntfuggly.todo-tree
code --install-extension jebbs.plantuml
code --install-extension jock.svg
code --install-extension lokalise.i18n-ally
code --install-extension ms-azuretools.vscode-containers
code --install-extension ms-azuretools.vscode-docker
code --install-extension ms-ceintl.vscode-language-pack-ja
code --install-extension ms-vscode-remote.remote-containers
code --install-extension ms-vscode-remote.remote-ssh
code --install-extension ms-vscode-remote.remote-ssh-edit
code --install-extension ms-vscode.remote-explorer
code --install-extension mushan.vscode-paste-image
code --install-extension redhat.vscode-commons
code --install-extension redhat.vscode-yaml
code --install-extension robberphex.php-debug
code --install-extension shd101wyy.markdown-preview-enhanced
code --install-extension swordev.phpstan
code --install-extension vscode-icons-team.vscode-icons
code --install-extension yzhang.markdown-all-in-one
settings.json
{
  "terminal.integrated.defaultProfile.linux": "zsh",
  "terminal.integrated.profiles.linux": {
    "zsh": {
      "path": "zsh"
    }
  },
  "terminal.integrated.allowChords": false,
  "terminal.integrated.commandsToSkipShell": [
    "-workbench.action.quickOpenView",
    "-workbench.action.terminal.focusFind"
  ],
  "workbench.startupEditor": "newUntitledFile",
  "workbench.iconTheme": "vscode-icons",
  "workbench.editor.decorations.badges": false,
  "workbench.editor.decorations.colors": false,
  "workbench.tree.enableStickyScroll": false,
  "workbench.layoutControl.enabled": false,
  "workbench.editor.empty.hint": "hidden",
  "files.eol": "\n",
  "files.trimTrailingWhitespace": true,
  "files.insertFinalNewline": true,
  "scm.showIncomingChanges": "never",
  "scm.showOutgoingChanges": "never",
  "git.autorefresh": true,
  "git.autoStash": true,
  "git.suggestSmartCommit": false,
  "git.mergeEditor": false,
  "git.openRepositoryInParentFolders": "never",
  "remote.autoForwardPortsSource": "hybrid",
  "diffEditor.ignoreTrimWhitespace": true,
  "diffEditor.renderGutterMenu": false,
  "explorer.confirmDragAndDrop": false,
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": "explicit"
  },
  "editor.stickyScroll.enabled": false,
  "[markdown]": {
    "editor.tabSize": 4,
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true
  },
  "php.validate.run": "onSave",
  "vsicons.dontShowNewVersionMessage": true,
  "pasteImage.path": "${currentFileDir}/${currentFileNameWithoutExt}.assets",
  "todo-tree.filtering.excludeGlobs": ["**/node_modules/**/*"],
  "todo-tree.highlights.customHighlight": {
    "TODO": {
      "foreground": "#f8ff96",
      "type": "text-and-comment"
    },
    "FIXME": {
      "foreground": "#ff9696",
      "type": "text-and-comment"
    }
  },
  "todo-tree.general.tags": ["TODO", "FIXME"],
  "todo-tree.regex.regex": "(//|#|<!--|/\\*|^\\s*\\*)\\s*($TAGS)",
  "gitlens.currentLine.format": "${author, }${date}${' via 'pullRequest}${ • message|50?}",
  "gitlens.statusBar.format": "${author}, ${date}${' via 'pullRequest}",
  "gitlens.statusBar.tooltipFormat": "${avatar} &nbsp;__${author}__, ${date}${' via 'pullRequest}\n\n${message}${\n\n---\n\nfootnotes}\n\n${commands}",
  "gitlens.hovers.detailsMarkdownFormat": "${avatar} &nbsp;__${author}__, ${date}${' via 'pullRequest}\n\n${message}${\n\n---\n\nfootnotes}\n\n${commands}",
  "gitlens.views.formats.stashes.description": "${date}",
  "gitlens.views.formats.commits.description": "${author, }${date}",
  "gitlens.defaultDateFormat": "YYYY-MM-DD",
  "terminal.integrated.shellIntegration.decorationsEnabled": "never",
  "security.workspace.trust.untrustedFiles": "open",
  "explorer.copyRelativePathSeparator": "/",
  "typescript.tsserver.log": "off",
  "gitlens.ai.experimental.generateCommitMessage.enabled": false,
  "redhat.telemetry.enabled": true,
  "chat.commandCenter.enabled": false,
  "gitlens.views.scm.grouped.views": {
    "commits": true,
    "branches": true,
    "remotes": true,
    "stashes": false,
    "tags": true,
    "worktrees": true,
    "contributors": true,
    "repositories": false,
    "searchAndCompare": false,
    "launchpad": false
  },
  "workbench.secondarySideBar.defaultVisibility": "hidden",
  "docker.extension.enableComposeLanguageServer": false,
  "workbench.localHistory.maxFileEntries": 500,
  "editor.acceptSuggestionOnCommitCharacter": false,
  "workbench.settings.showAISearchToggle": false,
  "gitlens.ai.enabled": false,
  "chat.agent.enabled": false,
  "remote.SSH.experimental.chat": false,
  "scm.showInputActionButton": false,
  "typescript.updateImportsOnFileMove.enabled": "always",
}
keybindings.json
// Place your key bindings in this file to override the defaults
[
    {
        "key": "ctrl+[BracketLeft]",
        "command": "workbench.action.terminal.toggleTerminal",
        "when": "terminal.active"
    },
    {
        "key": "ctrl+shift+r",
        "command": "typescript.restartTsServer"
    },
    {
        "key": "ctrl+shift+e",
        "command": "eslint.restart"
    },
    {
        "key": "alt+down",
        "command": "workbench.action.compareEditor.nextChange",
        "when": "textCompareEditorVisible"
    },
    {
        "key": "alt+up",
        "command": "workbench.action.compareEditor.previousChange",
        "when": "textCompareEditorVisible"
    },
    {
        "key": "ctrl+k enter",
        "command": "-workbench.action.keepEditor"
    },
    {
        "key": "ctrl+q",
        "command": "workbench.action.keepEditor"
    }
]

Xubuntu化

sudo apt install xubuntu-desktop
sudo apt purge gnome-desktop
sudo apt search gnome
sudo apt purge ubuntu-gnome-desktop gnome-shell
sudo apt autoremove

基本環境のセットアップ

  1. 土台となる環境をインストールする

    # 基礎環境の導入
    sudo apt update -y
    sudo apt upgrade -y
    sudo apt install -y \
        zsh \
        ssh \
        net-tools \
        traceroute \
        unzip \
        mariadb-server \
        nginx \
        git
    
    # chsh
    sudo apt -y install unzip traceroute
    chsh -s $(which zsh)
    
    # dotfiles
    wget https://github.com/Lycolia/my-dotfiles/archive/refs/heads/main.zip
    unzip main.zip
    cp -R my-dotfiles-main/. .
    rm -Rf my-dotfiles-main main.zip
    
  2. chshを効かせるためにOSを再起動

  3. Dockerをインストール

    # Docker
    for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
    
    # Add Docker's official GPG key:
    sudo apt -y update
    sudo apt -y install ca-certificates curl
    sudo install -m 0755 -d /etc/apt/keyrings
    sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
    sudo chmod a+r /etc/apt/keyrings/docker.asc
    
    echo \
    "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
    $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
    sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo apt update
    
    sudo apt -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    
    # sudo緩和
    sudo usermod -aG docker $USER
    
  4. Node.jsをインストール
     # Node.js @ nvm
     export NVM_DIR="$HOME/.nvm" && (
     git clone https://github.com/nvm-sh/nvm.git "$NVM_DIR"
     cd "$NVM_DIR"
     git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)`
     ) && \. "$NVM_DIR/nvm.sh"
     nvm install --lts
    
  5. dotfilesのセクションで拾ってきた.zshrcを開き、nvmが動くようにコメントを外す

SSH環境の作成

  1. 鍵置き場を作り、鍵を配置する
    mkdir ~/.ssh
    chmod 700 ~/.ssh
    touch config
    chmod 600 <鍵ファイル>
    
  2. 接続情報を書く
    Host hoge
    User foo
    Hostname git1.example.com
    IdentityFile ~/.ssh/config/id_ed25519_foo
    Port 22222
    Host piyo
    User bar
    Hostname git2.example.com
    IdentityFile ~/.ssh/config/id_ed25519_bar
    Port 20202
    

LibreOfficeのバージョンを上げる

LibreOfficeのバージョンを最新まで上げるとOnedriveに繋げるようになるらしいので上げてみたが、「LibreOffice OneDrive the specified device invalid」のようなエラーメッセージが出て実際には使えなかった。Google Driveでも同様の問題があるらしい

バージョンの上げ方

公式サイトからdebをダウンロードしてきて展開し、debが詰まったディレクトリでsudo dpkg -i *.debするとインストールできる。

そのままではXubuntuのLibreOfficeと競合するため以下のコマンドで古い方を消す。

sudo apt remove libreoffice-common
sudo apt autoremove

PHP8.4のインストール

  1. 取り敢えず使いそうなもの入れる

    php
    sudo add-apt-repository ppa:ondrej/php
    sudo apt update
    sudo apt install -y php8.4 \
        php8.4-bz2 \
        php8.4-cgi \
        php8.4-cli \
        php8.4-common \
        php8.4-curl \
        php8.4-dev \
        php8.4-ds \
        php8.4-fpm \
        php8.4-gd \
        php8.4-http \
        php8.4-imagick \
        php8.4-intl \
        php8.4-ldap \
        php8.4-mbstring \
        php8.4-mcrypt \
        php8.4-mysql \
        php8.4-oauth \
        php8.4-odbc \
        php8.4-pgsql \
        php8.4-smbclient \
        php8.4-snmp \
        php8.4-soap \
        php8.4-sqlite3 \
        php8.4-uuid \
        php8.4-vips \
        php8.4-xdebug \
        php8.4-xml \
        php8.4-xmlrpc \
        php8.4-yaml \
        php8.4-zip \
        php8.4-zstd
    sudo sed -i -e 's/;listen.mode = 0660/listen.mode = 0666/' /etc/php/8.4/fpm/pool.d/www.conf
    sudo service php8.0-fpm start
    
  2. nginxでfpmが動くか動作確認するために/etc/nginx/conf.d/test.confを作成し、以下を記述

    server {
      listen 80;
      listen [::1]:80;
    
      location ~ ^/.*$ {
        root /usr/share/nginx/html;
        fastcgi_pass unix:/run/php/php8.4-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
      }
    }
    
  3. sudo service nginx restart

  4. /usr/share/nginx/html/に適当なPHPスクリプトを置いて動いてるのが確認出来たらOK

デスクトップを使いやすくする

Windows 11っぽくする。

日本語入力できるようにする

タスクバーの右上にある「JA」をクリックしてMozcに変える

タスクバーを下に下げる

  1. タスクバーを右クリックし、パネル→パネルの設定を開く
  2. パネルをロックするを解除する
  3. タスクバーを画面下までドラッグする
  4. パネルをロックするをチェックする

スタートメニューや起動中のウィンドウを真ん中に寄せてラベルを消す

ウィンドウボタン

  1. パネルの設定を開き、アイテムタブに移る
  2. ウィンドウボタンをダブルクリック
  3. ボタンラベルを表示するのチェックを外す
  4. フラットボタンで表示するのチェックを入れる
  5. 取っ手を表示するのチェックを外す
  6. 並び変え順をタイムスタンプにする
  7. 基本的に画像の通りになってればOK
Whisker Menu

基本的に設定しなくてよいが、ラベルが出ている場合は表示をアイコンにすればよいと思う。

中央寄せにする

  1. セパレーターを追加し、セパレーター・Whisker Menu・ウィンドウボタンの順にする
  2. セパレーターをダブルクリックし、拡張するにチェックを入れる
  3. すると中央寄せになる
アイコンを大きめにする

  1. パネルの設定から表示タブを開く
  2. 行サイズを40にする
  3. 外観タブを開く
  4. 固定されたアイコンサイズを32にする
ワークスペースを一個にする

ウィンドウボタンの中央寄せを意識した場合に邪魔なのと、ウィンドウドラッグで他のデスクトップに勝手に飛んでいき、飛んでいくと戻すのが面倒なので、無効化する。

  1. パネルにあるワークスペーススイッチャの設定を開き一個にする
  2. ワークスペーススイッチャを消す(四つの窓と、画面右端にもう一個ある)

WindowsキーでWhisker Menuが、他のキーコンビネーションと干渉せずに開くようにする

愚直にやるとSuper+Eなどのキーとの同時押しと干渉するのでWindowsキー単体押下時のキーコードをいじるユーティリティ、KSUPERKEYを入れて解決する。

  1. 依存関係のインストールとビルド及びインストールコマンドを流す
    sudo apt install -y git gcc make libx11-dev libxtst-dev pkg-config
    git clone https://github.com/hanschen/ksuperkey.git
    cd ksuperkey
    make
    sudo make install
    
  2. 設定マネージャー→セッションと起動を開く
  3. ksuperkeyを追加する
  4. OSを再起動する。OS再起動後、Windowsキー単体の割り当てがSuperからAlt+F1に変更される
  5. 設定マネージャー→キーボードを開く
  6. xfce4-popup-whiskermenuの割り当てをAlt+F1に変更する
  7. Alt+F1にあるxfce4-popup-applicationsmenuと、Alt+Pauseにあるxfce4-popup-whiskermenuはゴミなので消す
  8. Windowsキーを押したときにWhisker Menuが開き、Windows + Eではファイラが開き、お互いが干渉しないことを確認できればOK

スクショを取りやすくする

PrintScreenで画面全体、Windows + Shift + Sで矩形スクショ、Alt + Insertでウィンドウスクショが撮れるようにする。

  1. 設定マネージャー→キーボードを開く
  2. xfce4-screenshooter系のコマンドの最後に -cを追加し、ダイアログなしでクリップボードに飛ばすようにする
  3. Windowsと同様のキーバインドを設定する

ファイル保存は-s 'ピクチャ/Screenshots/'のようなオプションを生やすと可能になるが毎回ダイアログが出るので指定しない方がいい。

また今回の方式ではコンテキストメニューやドロップダウンメニューが開いている場合は機能しなくなるが、回避方法は不明。

Flameshotという便利そうなツールもあるが、あいにくXfceのキーバインド機能に依存させるしかなく、xfce4-screenshooter以上のことはできない

クリップボードマネージャーを有効にする

セッションと起動の自動開始アプリケーションに移り、Clipmanにチェックを入れる。

フォルダ右クリックでVSCodeを開けるようにする

  1. フォルダを右クリックしアプリケーションで開く→他のアプリケーションで開く
  2. Visual Studio Codeを選択
  3. 以後、VSCodeが選択肢に出てくるようになる

WindowsとUbuntuのパフォーマンス比較

セットアップ後のUbuntuのCPU・メモリ・ストレージの各使用率を比較してみた。

双方VSCode, Edge, Discordを起動している状態で比較している。WindowsはCPUとメモリをタスクマネージャー、ストレージをエクスプローラ。UbuntuはCPUをタスクマネージャー、メモリをfree -h、ストレージをdfで見ている。

占有対象 Windows Ubuntu
CPU 30% 2%
MEM 6.6GB/15.4GB (43%) 3.6GiB/14GiB (26%)
ストレージ 113GB/236GB (48%) 17GB/213GB (8%)

圧倒的な軽さ。Windowsだと基本熱を持っていたマシンが随分穏やかな温度になり、夏場でも負荷をそこまで気にせず使えそうだった。

また、まだ今日セットアップしたばかりなので見れていないが、シャットダウン時の電力消費が著しく低い気配がしているので、一週間放置してたらバッテリー切れてたというのもなさそうな予感がしている。

ここはWindowsとの比較が出来ていないが、OSの起動が20秒、終了は4秒と、終了が異様に早い気がした。

単純比較はできないものの、遥かにスペックの高いメインマシンでは起動に2分、終了に20秒を要した事を考えると、かなり早い。

解決した課題

  • 120GB/256GBとストレージを食いすぎている問題
    • 使用量が17GBになり、何ら問題なくなった
  • メモリが16GBしかなく、WSLをまともに使えない問題
    • そもそもLinuxなのでVMが不要なため必然的に解決
    • メモリ使用量もWindowsでは6.6GB/15.4GBだったところ、3.6GB/16.1GBに若干改善した
  • 発熱が酷い問題
    • アイドル時のCPU使用率が30%から2%に落ち、ほとんど熱を持たなくなった
  • 電源を落として放置してると一週間でバッテリーが空になる問題
    • 現時点で6hしか放置できていないため不明だが、ほぼ減ってないように見えるので大丈夫かもしれない

目指す環境との乖離

  • Windows 11っぽいデスクトップ環境
    • 大まかにはそれっぽくなった
  • VSCodeを使った簡単なWeb開発や、Markdownライティングが可能
    • 出来る状態になっている
  • SSHで任意のサーバーに接続できる
    • 確実に可能
  • PHPとNode.jsが動く
    • 確実に可能
  • Xfce4を使った軽量なデスクトップ
    • 達成済み
  • スクショが撮れる
    • 手間がかかる部分もあるが、概ね問題ない。プルダウンメニューやコンテキストメニューもタイマーを書ければスクショできるし、そもそもそこをスクショする機会もそうないだろう
  • リサイズやモザイク、トリミングなどの簡単な画像編集が出来る
    • デフォルトでGIMPが入っているのでOK(JTrimにはどうしても劣るが、偶に使う程度であれば支障なし)

完成したデスクトップ環境

タスクバーが中央寄せの大きなアイコン表示で、起動順、アプリケーションごとにグループ化されてて、そこそこWindows11ぽさを出せてると思う。

サブでたまに使う程度なら全然許容という感じ。

懸念していたが大丈夫だった部分

  • マウス接続時のタッチパッド無効化
    • これ自体は難しそうだったが、キーボード入力中にタッチパッドが無効化されており、あまり気にならなかった。Ctrl押しながらタッチパッドはいけたので実用性で問題になることはないだろう
  • Surface Ark Mouseの三本指クリック
    • ちゃんと中クリックとして認識された