Skip to content

Commit

Permalink
Fix .prof output
Browse files Browse the repository at this point in the history
  • Loading branch information
sevanspowell committed May 4, 2021
1 parent a48422c commit 503519e
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 3 deletions.
1 change: 1 addition & 0 deletions .gitignore
@@ -1,5 +1,6 @@
dist-newstyle/
dist/
dist-prof/
result*
*.local
*.local~
Expand Down
1 change: 1 addition & 0 deletions metadata-store-postgres/metadata-store-postgres.cabal
Expand Up @@ -48,6 +48,7 @@ library
-Wredundant-constraints
-Wpartial-fields
-Wcompat
-rtsopts

test-suite integration-tests
hs-source-dirs: test
Expand Down
1 change: 1 addition & 0 deletions nix/haskell.nix
Expand Up @@ -57,6 +57,7 @@ let
# Enable profiling on executables if the profiling argument is set.
(lib.optionalAttrs profiling {
enableLibraryProfiling = true;
packages.metadata-store-postgres.components.library.enableLibraryProfiling = true;
packages.metadata-server.components.exes.metadata-server.enableExecutableProfiling = true;
packages.metadata-webhook.components.exes.metadata-webhook.enableExecutableProfiling = true;
packages.metadata-validator-github.components.exes.metadata-validator-github.enableExecutableProfiling = true;
Expand Down
14 changes: 11 additions & 3 deletions nix/nixos/tests/mem-usage.nix
Expand Up @@ -33,7 +33,7 @@ in

virtualisation.memorySize = totalMem;

environment.systemPackages = [ pkgs.vegeta pkgs.htop vegetaGo pkgs.haskellPackages.hp2pretty ];
environment.systemPackages = [ pkgs.vegeta pkgs.htop vegetaGo pkgs.haskellPackages.hp2pretty pkgs.haskellPackages.profiteur ];

services.postgresql = {
enable = true;
Expand Down Expand Up @@ -93,11 +93,13 @@ in
database = database;
};

extraFlags = ["+RTS" "-h" "-RTS"];
extraFlags = ["+RTS" "-h" "-p" "-RTS"];

metadataServerPkgs = (import ../../../. {}).profiledProject;
};
systemd.services.metadata-server.serviceConfig.WorkingDirectory = metadataWorkingDir;
systemd.services.metadata-server.serviceConfig.RuntimeDirectoryPreserve = true;
systemd.services.metadata-server.serviceConfig.ExecStop = "${pkgs.coreutils}/bin/kill -s SIGINT $MAINPID";

systemd.tmpfiles.rules = [
"L /root/vegeta.atk - - - - ${vegetaCommands}"
Expand All @@ -115,9 +117,14 @@ in
server.wait_for_open_port(${toString postgresPort})
server.wait_for_open_port(${toString metadataServerPort})
server.succeed("cat ${vegetaCommands} | vegeta attack -duration 10s -connections 1 -rate 100/s")
server.succeed("cat ${vegetaCommands} | vegeta attack -duration 1s -connections 1 -rate 100/s")
# Stop metadata-server.service so GHC writes out .prof file contents
server.succeed("systemctl stop metadata-server.service")
server.succeed("sleep 10")
server.succeed("cd ${metadataWorkingDir} && hp2pretty metadata-server.hp")
server.succeed("cd ${metadataWorkingDir} && profiteur metadata-server.prof")
server.copy_from_vm("${metadataWorkingDir}/metadata-server.svg")
server.copy_from_vm("${metadataWorkingDir}/metadata-server.prof.html")
def write_hydra_build_products(data):
out_dir = pathlib.Path(os.environ.get("out", os.getcwd()))
Expand All @@ -127,5 +134,6 @@ in
f.write(data.format(out_dir) + "\n")
write_hydra_build_products("file svg {}/metadata-server.svg")
write_hydra_build_products("file html {}/metadata-server.prof.html")
'';
}

0 comments on commit 503519e

Please sign in to comment.